#include static struct id_mesg;
static struct id_mesg persons = ,
, , };
static struct id_mesg per_one = ;
int main(int argc, char **argv)
printf("name: %s\t age: %d\t job: %s\n", per_one.name, per_one.age, per_one.job);
}
程式如上所示。
static struct id_mesg persons = ,
, ,};
該段的前三個為結構體賦值常用方法,最後乙個是來自c99標準,表示指定初始化,使用字首.加變數名稱進行定向賦值
如上所示,分別對
name賦值為字串
「linus」,
job賦值為字串
「linuxman」,可以空下
age不進行賦值這使得結構體的賦值更加便捷,而且可以單獨對某乙個變數進行賦值而不需要管其他的變數。
倘若我們使用前三項的方法只對
age和
job進行賦值是比較困難的,但是使用最後乙個初始化形式對這兩者賦值則是非常簡單,這個特性常常用在結構體變數非常多而且不需要全部進行初始化的地方,在linux的核心當中可以看到有大量的這種方法賦值的語句。
我們也可以單獨進行乙個結構體的賦值,如下
static struct id_mesg per_one = ;
上述程式執行之後的結果是:
name: bimax age: 23 job: hero
name: deadpool age: 34 job: marvel
name: thor age: 65535 job: god
name: linus age: 0 job: linuxman
name: gates age: 43 job: itman
C99標準之前沒有bool型別(C99提供)
我們知道在c 裡有專門的bool型別,用來表示真或假。但是在c語言裡沒有這樣的型別。表示式的值0為假,非0為真。所以條件判斷語句 if while 非常靈活,甚至乙個指標型別都可以是條件表示式。為了使程式更清晰,我們常常會給出如下的巨集定義 typedef int bool define true ...
C99標準的新特性
c語言的發展歷史大致上分為4個階段 old style c c89 c99和c11.c89是最早的c語言規範,於1989年提出,1990年先由ansi 美國國家標準委員會,american national standards institute 推出ansi版本,後來被接納為iso國際標準 iso...
C99結構體指定初始化
c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 struc...