GNU c對c的擴充套件

2021-10-23 06:04:19 字數 1093 閱讀 4330

1.變長陣列

#includeusing namespace std;

struct s;

int main()

for(int i=0;i<=6;i++)

return 0;

}

只用了一次malloc 效率更高。

2.使case可以匹配乙個數值範圍

#include using namespace std;

int main()

我一開始還疑惑這東西到底有**用,後來發現自己還是年少無知。。。可以看看下面這個dalao寫的

4.gnu c中巨集函式允許使用可變引數型別

#include #define logstrings(fm, ...) printf(fm,##__va_args__)

using namespace std;

int main()

這個應該很多人打過acm的大佬用吧

5. 元素編號

標準c規定陣列和結構體必須按照固定順序對成員進行初始化賦值。gnu則放寬了限制,使陣列在初始化期間借助下表對某些元素賦值。

#include #define logstrings(fm, ...) printf(fm,##__va_args__)

using namespace std;

unsigned char data[105]=;

int main()

6.gnu c為當前函式準備了兩個名字__function__  __pretty__function__

#include using namespace std;

void imfunctiona()

int main()

輸出:

imfunctiona

process returned 0 (0x0)   execution time : 0.028 s

press any key to continue.

7.特殊屬性說明

GNU C語法擴充套件 6

要研究linux核心,c語言是基礎中的基礎,但是linux並不是完全的標準c,而是對標準c做了很多擴充套件,這些擴充套件特性對於我們分析核心有著很重要的作用,下面做些總結性的工作。structusb inte ce cache structusb inte ce cache p malloc siz...

linux核心 使用的 gnu c 擴充套件

gnu cc是乙個功能非常強大的跨平台c編譯器,它對c語言提供了很多擴充套件,這些擴充套件對優化 目標 布局 更安全的檢查等方面提供了很強的支援。本文把支援gnu擴充套件的c語言稱為gnu c。linux核心 使用了大量的gnu c擴充套件,以至於能夠編譯linux核心的唯一編譯器是gnu cc,以...

GNU C語言的 擴充套件(六)內建函式

gnu c 提供了大量的內建函式,其中很多是標準 c 庫的內建版本,例如 memcpy 它們與對應的 c 庫函式功能相同。而其他內建的名字通常以 builtin 開始。內建函式 builtin return address 返回當前函式或其呼叫者的返回位址,引數 level 指定在棧上搜尋框架的個數...