C++预处理命令中“#ifdef”可不可以实现多路分支? “C语言的预处理 不能实现宏定义和条件编译的功能”和“C语言...

C++\u9884\u5904\u7406\u547d\u4ee4\u53ef\u4ee5\u5d4c\u5957\u5417

\u5f53\u7136\u53ef\u4ee5\u3002
#define e
#define f

#ifdef e
#ifdef f
//#error e & f // both defined \u53ea\u6709define\u4e86e\u548cf\uff0c\u8fd9\u91cc\u624d\u4f1adefine
#endif // #ifdef f \u5728\u6b64\u7ed3\u675f
#endif // #ifdef e \u5728\u6b64\u7ed3\u675f

\u8fd9\u4e24\u53e5\u8bdd\u662f\u4e00\u4e2a\u610f\u601d\uff0c C\u8bed\u8a00\u4e2d\u7684\u9884\u5904\u7406\uff0c\u662f\u53ef\u4ee5\u5b9e\u73b0\u5b8f\u5b9a\u4e49\u548c\u6761\u4ef6\u7f16\u8bd1\u529f\u80fd\u7684\u3002\u6bd4\u5982\u4e0b\u9762\u7684\u4ee3\u7801\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5b8fS\uff0c\u5b83\u7684\u503c\u662f\u201dhello world\n"\uff0c\u53ef\u4ee5\u7528printf\u51fd\u6570\u76f4\u63a5\u6253\u5370\u51fa\u6765\u3002
#include #define S "hello world\n"int main(){printf(S); return 0;}C\u8bed\u8a00\u4e2d\u7684\u9884\u5904\u7406\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u6761\u4ef6\u7f16\u8bd1\u529f\u80fd\uff0c\u9884\u5904\u7406\u5230\u73b0\u5728\u4f9d\u7136\u5b58\u5728\u7684\u4e00\u4e2a\u91cd\u8981\u539f\u56e0\u5c31\u5728\u4e8e\u6b64\u3002\u6bd4\u5982\u4e0b\u9762\u7684\u4ee3\u7801\uff1a
#include int main(){#ifdef _DEBUGprintf("\u7a0b\u5e8f\u751f\u6210\u7684debug\u7248\n");#elseprintf("\u7a0b\u5e8f\u751f\u6210\u7684\u662frelease\u7248\n");#endifreturn 0;}

楼主您好 只能实现两路分支
比如下面这段代码执行的是代码段1:
#if 1
代码段1
#else
代码段2
#endif
另外与此同理,下面这段代码执行的是代码段2:
#if 0
代码段1
#else
代码段2
#endif
其实本质上 ifdef就是if而已 呵呵 if 0 那么就是假 不执行if的内容 if 1 那么就是真的 就执行if的内容


#ifdef 条件
分支1
#else
分支2
#endif

#ifdef 标识符1
程序段1
#else
程序段2
#endif

#ifdef A
#include <stdlib.h>
#else
#include <stdio.h>
#endif

用#elif

  • C璇█棰 宸叉湁棰勫鐞嗗懡浠鈥渋nclude<math.h>鈥濆拰澹板悕鈥渋nt a=4,b...
    绛旓細A 銆 閿欏湪浜哸%2=1锛屽簲璇ユ槸鐩哥瓑鑰屼笉鏄祴鍊 锛岃祴鍊煎彧鑳界粰鍙橀噺璧嬪艰屼笉鑳界粰琛ㄨ揪寮忚祴鍊笺傛墍浠ユ槸a%2==1;B銆%鍙栨ā杩愮畻绗︾殑宸﹀煎彸鍊奸兘蹇呴』鏄暣鏁帮紝sqrt(a)鐨勮繑鍥炲兼槸涓涓猟ouble,鎵浠ラ敊璇 D銆俠=*a娌℃湁杩欐牱鍐欑殑锛屼竴鑸兘鏄痓*=a.
  • C璇█:棰勫鐞鏄粈涔堟剰鎬?灏辨槸鐪嬩笉鎳傝繖鍙ヨ瘽鐨勮В閲!瓒婂叿浣撹秺濂,涔熷彲浠ラ ...
    绛旓細鍦C璇█涓,鈥滃畯鈥濆垎涓烘湁鍙傛暟鍜屾棤鍙傛暟涓ょ銆 涓嬮潰鍒嗗埆璁ㄨ杩欎袱绉嶁滃畯鈥濈殑瀹氫箟鍜岃皟鐢ㄣ 鏃犲弬瀹忓畾涔 鏃犲弬瀹忕殑瀹忓悕鍚庝笉甯﹀弬鏁般傚叾瀹氫箟鐨勪竴鑸舰寮忎负: #define 鏍囪瘑绗 瀛楃涓 鍏朵腑鐨勨#鈥濊〃绀鸿繖鏄竴鏉棰勫鐞嗗懡浠銆傚嚒鏄互鈥#鈥濆紑澶寸殑鍧囦负棰勫鐞嗗懡浠ゃ傗渄efine鈥濅负瀹忓畾涔夊懡浠ゃ 鈥滄爣璇嗙鈥濅负鎵瀹氫箟鐨勫畯鍚嶃傗...
  • C璇█ 棰勫鐞嗗懡浠
    绛旓細M(a+b,b+c,c+a)灏嗚瀹忔浛鎹负锛歛+b*b+c+c+a 鑰屼笉鏄綘鍙兘鐩歌鐨勶細(a+b)*(b+c)+(c+a)濡傛灉闇瑕佷笂闈㈢殑杩欎釜缁撴灉锛岃灏嗗畯瀹氫箟淇敼濡備笅锛歞efine M(x,y,z) (x)*(y)+(z)
  • c璇█涓,浠"#"寮澶寸殑鎺у埗琛岄兘鏄棰勫鐞嗗懡浠鍚?
    绛旓細棰勫鐞鏄C璇█鐨勪竴涓噸瑕佸姛鑳斤紝瀹冪敱棰勫鐞嗙▼搴忚礋璐e畬鎴愩傚綋瀵逛竴涓簮鏂囦欢杩涜缂栬瘧鏃讹紝绯荤粺灏嗚嚜鍔ㄥ紩鐢ㄩ澶勭悊绋嬪簭瀵规簮绋嬪簭涓殑棰勫鐞嗛儴鍒嗕綔澶勭悊锛屽鐞嗗畬姣曡嚜鍔ㄨ繘鍏ュ婧愮▼搴忕殑缂栬瘧銆侰璇█鎻愪緵澶氱棰勫鐞嗗姛鑳斤紝涓昏澶勭悊#寮濮嬬殑棰勭紪璇鎸囦护锛屽瀹忓畾涔(#define)銆佹枃浠跺寘鍚(#include)銆佹潯浠剁紪璇(#ifdef)绛夈傚悎鐞...
  • c璇█ define 鎬庝箞鐢ㄧ殑
    绛旓細C璇█涓璬efine鐨勭敤娉(2009-08-17 19:21:11)杞浇鏍囩: 鏉傝皥 define鏄疌璇█涓殑棰勫鐞嗗懡浠,瀹冪敤浜庡畯瀹氫箟,鍙互鎻愰珮婧愪唬鐮佺殑鍙鎬,涓虹紪绋嬫彁渚涙柟渚裤傞澶勭悊鍛戒护浠モ#鈥濆彿寮澶,濡傚寘鍚懡浠#include,瀹忓畾涔夊懡浠#define绛夈備竴鑸兘鏀惧湪婧愭枃浠剁殑鍓嶉潰,瀹冧滑绉颁负棰勫鐞嗛儴鍒嗐傛墍璋撻澶勭悊鏄寚鍦ㄨ繘琛岀紪璇戜箣鍓嶆墍浣滅殑宸ヤ綔銆傞澶勭悊...
  • 鍦C璇█涓,棰勫鐞嗘寚浠鏈変粈涔堜綔鐢?姣斿#define 瀹忓悕 瀛楃涓
    绛旓細C璇█棰勫鐞嗙▼搴忕殑浣滅敤鏄牴鎹簮浠g爜涓殑棰勫鐞嗘寚浠淇敼浣犵殑婧愪唬鐮併傞澶勭悊鎸囦护鏄竴绉嶅懡浠よ鍙(濡#define)锛屽畠鎸囩ず棰勫鐞嗙▼搴忓浣曚慨鏀规簮浠g爜銆傚湪瀵圭▼搴忚繘琛岄氬父鐨勭紪璇戝鐞嗕箣鍓嶏紝缂栬瘧绋嬪簭浼氳嚜鍔ㄨ繍琛岄澶勭悊绋嬪簭锛屽绋嬪簭杩涜缂栬瘧棰勫鐞嗭紝杩欓儴鍒嗗伐浣滃绋嬪簭鍛樻潵璇存槸涓嶅彲瑙佺殑銆傞澶勭悊绋嬪簭璇诲叆鎵鏈夊寘鍚殑鏂囦欢浠ュ強寰...
  • 浠涔堝彨棰勫鐞嗗懡浠?
    绛旓細ANSI C鏍囧噯瑙勫畾, C婧愮▼搴忎腑鍙互鍔犲叆涓浜棰勫鐞嗗懡浠,浠ユ敼杩涚▼搴忚璁$幆澧,鎻愰珮缂栫▼鏁堢巼.棰勫鐞嗗懡浠や笉鏄疌璇█鏈韩鐨勭粍鎴愰儴鍒,鎵浠ュ湪浣跨敤鏃朵互"#"寮澶,浠ョず鍜孋璇彞鐨勫尯鍒.缂栬瘧绋嬪簭鍦ㄥ婧愮▼搴忕紪璇戜箣鍓嶉鍏堝棰勫鐞嗗懡浠よ繘琛屽鐞(绉颁负棰勫鐞),灏嗗叾鏇挎崲鎴愬叿鏈夊疄闄呮剰涔夌殑鍐呭,鐒跺悗鍐嶈繘琛岀紪璇.甯哥敤鐨勯澶勭悊鍔熻兘鏈...
  • 棰勫鐞嗘寚浠鏈変粈涔堜綔鐢?
    绛旓細绋嬪簭璁捐璇█鐨勯澶勭悊鐨勬蹇碉細鍦ㄧ紪璇戜箣鍓嶈繘琛岀殑澶勭悊銆 C璇█鐨勯澶勭悊涓昏鏈変笁涓柟闈㈢殑鍐呭锛 1.瀹忓畾涔夛紱 2.鏂囦欢鍖呭惈锛 3.鏉′欢缂栬瘧銆 棰勫鐞嗗懡浠浠ョ鍙封#鈥濆紑澶淬1.涓嶅甫鍙傛暟鐨勫畯瀹氫箟锛氬畯瀹氫箟鍙堢О涓哄畯浠f崲銆佸畯鏇挎崲锛岀畝绉扳滃畯鈥濄傛牸寮忥細define鏍囪瘑绗 瀛楃涓 鍏朵腑鐨勬爣璇嗙灏辨槸鎵璋撶殑绗﹀彿甯搁噺锛屼篃绉...
  • C璇█ 涓琛屽彧鑳芥湁涓涓棰勫鐞嗗懡浠鍚?
    绛旓細鍦ㄦ簮鏂囦欢鐨勪竴琛屼笂鍙互鏈夊鏉棰勫鐞嗘寚浠銆傞澶勭悊鎸囦护鏄互#鍙峰紑澶寸殑浠g爜琛岋紝# 鍙峰繀椤绘槸璇ヨ闄や簡浠讳綍绌虹櫧瀛楃澶栫殑绗竴涓瓧绗︺傚悗鏄寚浠ゅ叧閿瓧锛屽湪鍏抽敭瀛楀拰 # 鍙蜂箣闂村厑璁稿瓨鍦ㄤ换鎰忎釜鏁扮殑绌虹櫧瀛楃锛屾暣琛岃鍙ユ瀯鎴愪簡涓鏉¢澶勭悊鎸囦护锛岃鎸囦护灏嗗湪缂栬瘧鍣ㄨ繘琛岀紪璇戜箣鍓嶅婧愪唬鐮佸仛鏌愪簺杞崲銆C璇█涓#寮澶寸殑鏄...
  • c璇█(蹇揩蹇!)
    绛旓細棰勫鐞嗗懡浠銆傝繖涓槸涓嶅湪绋嬪簭涓繍琛岀殑锛屽彧鍦ㄧ紪璇戞椂鎶婇渶瑕佸寘鍚殑鏂囦欢鎴栬皟鐢ㄧ殑婧愮爜缂栧叆鍙墽琛岀▼搴忋備綘瑕佹槸瀛﹁繃銆婄紪璇戝師鐞嗐嬪氨鐭ラ亾浜嗭紝涓鑸殑绋嬪簭鍛橀兘瑕佹帴瑙﹁繖闂ㄥ绉戯紝杩欏绋嬪簭鐨勬繁灞傛鐞嗚В鏈夊府鍔┿俰nclude琛ㄧず鍖呭惈C/C++鏍囧噯杈撳叆澶存枃浠躲傚寘鍚寚浠や笉浠呬粎闄愪簬.h澶存枃浠讹紝鍙互鍖呭惈浠讳綍缂栬瘧鍣ㄨ兘璇嗗埆鐨凜/C++浠g爜...
  • 扩展阅读:c++预处理 ... c++ 多进程 ... ultra ata crc error rate ... c++多线程面试题及答案 ... c++ 容器 ... c++ 构造函数 智能指针 ... c++ 单例模式 ... c#开发实战 ... cmd批量ping多个ip ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网