成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C語(yǔ)言中幾種特殊標(biāo)準(zhǔn)定義和用法

開(kāi)發(fā) 后端
除了大家說(shuō)的PHP,其實(shí),C語(yǔ)言也是世界上最好的語(yǔ)言。C語(yǔ)言已經(jīng)連續(xù)幾個(gè)月占比 TIOBE 榜首,成為最受歡迎的編程語(yǔ)言了。

除了大家說(shuō)的PHP,其實(shí),C語(yǔ)言也是世界上最好的語(yǔ)言。C語(yǔ)言已經(jīng)連續(xù)幾個(gè)月占比 TIOBE 榜首,成為最受歡迎的編程語(yǔ)言了。

 

 

 

 

C語(yǔ)言之所以那么受歡迎,除了歷史悠久之外,還有他它具有一些編程語(yǔ)言沒(méi)有的功能。那么,今年我們就來(lái)了解一下C語(yǔ)言的一些特殊功能。

一、ANSI C特殊標(biāo)準(zhǔn)定義羅列一些常見(jiàn)的特殊定義:

__FILE__:正在編譯文件的路徑及文件名

__LINE__:正在編譯文件的行號(hào)

__DATE__:編譯時(shí)刻的日期字符串 如“July 19 2019”

__TIME__:編譯時(shí)刻的時(shí)間字符串 如”22:00:00“

代碼:

  1. char BuildFile[] = __FILE__; 
  2. int  BuildLine = __LINE__; 
  3. char BuildDate[] = __DATE__; 
  4. char BuildTime[] = __TIME__; 
  5.  
  6. printf("編譯文件路徑:%s\n", BuildFile); 
  7. printf("編譯代碼所在行:%d\n", TestLine); 
  8. printf("編譯日期:%s\n", BuildDate); 
  9. printf("編譯時(shí)間:%s\n", BuildTime); 

提示:__LINE__是整型數(shù)據(jù);

其實(shí)除了這些還有很多相關(guān)的定義,比如:

1.__FUNCTION__:函數(shù)名,類型為:字符常量指針。

  1. char const* BuildFunName = __FUNCTION__; 
  2. printf("函數(shù)名稱為:%s\n", BuildFunName); 

2.__VER__:IDE版本信息,類型為:整型。

如我用的IAR版本為:7.80.04,如下圖:

 

 

 

代碼:

  1. int  IDEVersion = __VER__; 
  2. printf("IDE版本:%d\n", IDEVersion); 

輸出:

IDE版本:7080004

二、可變參數(shù)

我們?cè)趯W(xué)習(xí)C語(yǔ)言的時(shí)候,都知道printf是可變參數(shù)的函數(shù):

  1. char a = 1; 
  2. char b = 2; 
  3. char c = 3; 
  4. printf("a = %d\n", a); 
  5. printf("a = %d; b = %d\n", a, b); 
  6. printf("a = %d; b = %d; c = %d\n", a, b, c); 

上面就是可變參數(shù)printf的例子,也就是說(shuō)參數(shù)可以一個(gè)也可以多個(gè)。

而接下來(lái)說(shuō)的__VA_ARGS__,就是一個(gè)可變參數(shù)宏,與printf中可變參數(shù)的宏定義一個(gè)道理,是新C99規(guī)范中增加的。

1.關(guān)于__VA_ARGS__

__VA_ARGS__它是一個(gè)可變參數(shù)的宏,就是將左邊宏中“...” 的內(nèi)容原樣抄寫在右邊 __VA_ARGS__ 所在的位置。

要注意的是,printf 的輸出格式是括號(hào)內(nèi)左邊是字符串,右邊是變量,而且右變量與左輸出格式是一一對(duì)應(yīng)的,不對(duì)應(yīng)就會(huì)出錯(cuò)。可以參看下面那個(gè)例子, __VA_ARGS__其實(shí)是遵循了printf的格式。

...缺省號(hào)代表一個(gè)可以變化的參數(shù)表。使用保留名 __VA_ARGS__ 把參數(shù)傳遞給宏。當(dāng)宏的調(diào)用展開(kāi)時(shí),實(shí)際的參數(shù)就傳遞給 printf()了。

2.實(shí)例說(shuō)明

  1. #define SENSOR_Printf(...)  printf("--SENSOR--"__VA_ARGS__) 
  2. int TemperatureVal = 25; 
  3. SENSOR_Printf("溫度 = %d℃\n", TemperatureVal); 

輸出結(jié)果:

  1. --SENSOR--溫度 = 25℃ 

用心的朋友可能會(huì)猜測(cè)的到:“...”類似等于“__VA_ARGS__”。

從例子中我們可以看得出來(lái),__VA_ARGS__的用途,主要是用于可變參數(shù)的函數(shù)。我們使用較多的printf就是最常見(jiàn)的一個(gè)。

如果我們的工程很龐大,我們就可以將打印信息分類,這樣的好處就是方便我們識(shí)別各類打印信息。

 

責(zé)任編輯:龐桂玉 來(lái)源: C語(yǔ)言與C++編程
相關(guān)推薦

2010-07-23 13:23:10

Perl語(yǔ)言

2024-01-05 08:31:08

C語(yǔ)言

2022-07-29 13:10:16

C語(yǔ)言宏定義命令

2010-07-23 13:46:27

Perl語(yǔ)言

2010-07-19 10:01:57

Perl函數(shù)

2010-08-16 13:03:27

DIV

2010-07-26 16:23:23

Perl語(yǔ)言

2010-07-13 15:34:09

Perl語(yǔ)言

2015-04-15 14:41:40

c語(yǔ)言數(shù)組名a&a詳細(xì)介紹

2023-12-01 13:47:45

C語(yǔ)言conststat

2011-07-14 10:23:33

C語(yǔ)言

2011-03-30 11:01:13

C語(yǔ)言隨機(jī)

2010-01-11 15:29:13

引用C++語(yǔ)言

2009-11-23 11:25:54

php curl

2019-08-28 09:04:02

Go語(yǔ)言Python操作系統(tǒng)

2016-07-15 13:43:43

互聯(lián)網(wǎng)

2010-03-11 19:16:32

Python語(yǔ)言

2011-05-13 17:25:34

C

2010-01-15 19:17:48

C++語(yǔ)言

2022-01-06 14:25:24

C語(yǔ)言指針內(nèi)存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人国产精品免费观看 | 成人国内精品久久久久一区 | 一级毛片视频在线 | 国产一区二区三区四区 | 亚洲成a人片| 国产精品久久影院 | 国产精品18hdxxxⅹ在线 | 91在线色视频 | 亚洲自拍偷拍免费视频 | 狠狠久久 | 精品亚洲永久免费精品 | 欧美福利在线 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 久久草在线视频 | 久久精品毛片 | 欧美一级久久精品 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 欧美中文字幕一区二区 | 欧美国产精品 | 日韩国产欧美视频 | 欧美日韩一区二区在线 | 亚洲天堂一区二区 | 一区二区三区四区在线视频 | 一级黄色夫妻生活 | 中文字幕欧美日韩一区 | 日韩欧美一区二区三区四区 | 国产午夜三级一区二区三 | 成人在线观看免费 | 免费精品 | 欧美一区二区在线免费观看 | 亚洲综合在线视频 | 久久久久久亚洲 | 成人性视频在线 | 久久精品亚洲精品 | 国产亚洲欧美在线视频 | 天天拍天天插 | 久久综合久久综合久久综合 | 欧美日韩国产高清 | 一区二区高清在线观看 | 国产乱码精品一区二区三区中文 | 99re免费 |