簡體   English   中英

用gcc內聯C代碼中的所有功能

[英]Inline all the functions in C code with gcc

我有許多沒有遞歸的C程序。 我想獲取沒有用戶定義功能但主要功能的程序。 GCC可以內聯,但是處於IR級別,因此我無法獲得C代碼。

資源:

int calc(int a , int b)
{
    a=a+b-2;
    return a ;
}

int main()
{
    int x=4,y=7;
    x=calc(x,y);
    return 0 ;
}

目標:

int main()
{
    int x=4,y=7;
    int calc_A=x,calc_B=y;
    calc_A=calc_A+calc_B-2;
    x=calc_A;
    return 0 ;
}

gcc提供了一個函數屬性,稱為always_inline

用法:

int add(int arg1, int arg2)__attribute__((always_inline)); // prototype
int add(int arg1, int arg2){
    return arg1+arg2;
}

但是,您必須手動將此屬性附加到每個函數。

我仍然假設您的所有功能都遵循內聯所必需的規則。 例如,沒有goto,遞歸等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM