欢迎来到天天文库
浏览记录
ID:8840307
大小:26.53 KB
页数:9页
时间:2018-04-09
《标准c中预定义的宏》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、[转载]c/c++标准预定义宏2009-08-2214:40http://www.cnblogs.com/sevencat/archive/2004/06/10/14872.html一、标准预定义宏Thestandardpredefinedmacrosarespecifiedbytherelevantlanguagestandards,sotheyareavailablewithallcompilersthatimplementthosestandards.Oldercompilersmaynotprovideallofthem.Theirnamesallstartwithdoubleun
2、derscores.__FILE__Thismacroexpandstothenameofthecurrentinputfile,intheformofaCstringconstant.Thisisthepathbywhichthepreprocessoropenedthefile,nottheshortnamespecifiedin#includeorastheinputfilenameargument.Forexample,"/usr/local/include/myheader.h"isapossibleexpansionofthismacro.__LINE__Thismacroex
3、pandstothecurrentinputlinenumber,intheformofadecimalintegerconstant.Whilewecallitapredefinedmacro,it'saprettystrangemacro,sinceits"definition"changeswitheachnewlineofsourcecode.__FILE__and__LINE__areusefulingeneratinganerrormessagetoreportaninconsistencydetectedbytheprogram;themessagecanstatetheso
4、urcelineatwhichtheinconsistencywasdetected.Forexample, fprintf(stderr,"Internalerror:" "negativestringlength" "%dat%s,line%d.", length,__FILE__,__LINE__); An#includedirectivechangestheexpansionsof__FILE__and__LINE__tocorrespondtotheincluded
5、file.Attheendofthatfile,whenprocessingresumesontheinputfilethatcontainedthe#includedirective,theexpansionsof__FILE__and__LINE__reverttothevaluestheyhadbeforethe#include(but__LINE__isthenincrementedbyoneasprocessingmovestothelineafterthe#include).A#linedirectivechanges__LINE__,andmaychange__FILE__a
6、swell.SeeLineControl.C99introduces__func__,andGCChasprovided__FUNCTION__foralongtime.Bothofthesearestringscontainingthenameofthecurrentfunction(thereareslightsemanticdifferences;seetheGCCmanual).Neitherofthemisamacro;thepreprocessordoesnotknowthenameofthecurrentfunction.Theytendtobeusefulinconjunc
7、tionwith__FILE__and__LINE__,though.__DATE__Thismacroexpandstoastringconstantthatdescribesthedateonwhichthepreprocessorisbeingrun.Thestringconstantcontainselevencharactersandlookslike"Feb121996".Ifthedayofthemonth
此文档下载收益归作者所有