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 指定在棧上搜尋框架的個數...