日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ISO C99中的一些扩展(草稿)

發(fā)布時間:2023/12/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ISO C99中的一些扩展(草稿) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、指定數(shù)組初始化
int arry[6] = { [4] = 29, [2] = 15 }; ? //指定arry[4]=29, arry[2]=15 ,其他的為0


等價于
int arry[6] = { 0, 0, 15, 0, 29, 0 };


類似于注定結構體初始化


二、空結構體,C89標準的結構體不支持空結構體的。。
struct empty {
};


三、C++一樣的注釋符號 //
四、支持inline類聯(lián)函數(shù)
static inline int
inc (int *a)
{
return (*a)++;
}


__inline__ ?在一個頭文件中使用 __inline__ 聲明inline函數(shù),因為ISO C90沒有inline,這個時候就會被解釋成空,忽略掉他。。。


五、聲明時使用變量初始化
foo (float f, float g)
{
float beat_freqs[2] = { f-g, f+g };
/* ... */
}


六、標識符允許添加美元符號
七、老式的函數(shù)定義不在支持
/* Old-style function definition. ?*/
int
isroot (x) ? /* ??? lossage here ??? */
uid_t x;
{
return x == 0;
}


八、case語句的范圍caselow ...high:
像 case 'A'...'Z':
case 1...5:


九、多了一個轉義字符 '\e' ,表示 <ESC>
十、類型轉換可以轉成union類型
union foo { int i; double d; };
int x;
double y;
union foo u;
/* ... */
u = (union foo) x ?== ?u.i = x
u = (union foo) y ?== ?u.d = y


十一、變量、函數(shù)和類型可以添加屬性 __attribute__
十二、數(shù)組可以用restrict修飾, 想 arry_name[restrict]
十三、支持復數(shù)運算


十四、支持嵌套函數(shù)(Nested Functions)
foo (double a, double b)
{
double square (double z) { return z * z; }


return square (a) + square (b);
}


十五、修改了條件運算符
原先的是:
x?x:y;


C99可以寫成:
x ? : y;


十六、標簽即變量
static void *array[] = { &&foo, &&bar, &&hack };
goto *array[i];
十七、支持變參宏
#define ENABLE_DEBUG 1 ? //else, comment this line
#ifdef ENABLE_DEBUG
#define DEBUG_LOG(fmt,...) fprintf(stderr, "%s:%d: " fmt "\n", ?\
__func__, __LINE__, ## __VA_ARGS__)
#else
#define DEBUG_LOG(fmt, ...) do {} while (0)
#endif






等等。。。。。。。。。。。。。。

總結

以上是生活随笔為你收集整理的ISO C99中的一些扩展(草稿)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。