[問題] 用#if判斷variable的值

作者: Hyozero (1)   2022-11-10 00:23:24
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
請問下面網址內的程式碼
第26行~48行, 執行結果會認為variable a1的值是0
原因是preprocessor展開的時候還沒compile, 所以將不認得的variable當成0來看待嗎?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://ideone.com/LmmXtE
補充說明(Supplement):
作者: shibin (喜餅)   2022-11-10 00:50:00
我只知道#if通常用在判斷是否已定義,不知能否判斷數值我說的定義是#define al,不是int a1;
作者: Dracarys (MayShowGunMore)   2022-11-10 00:53:00
作者: Richun (解放左手的OO之力)   2022-11-10 01:00:00
判斷定義與否應該是#ifdef跟#ifndef
作者: gusion   2022-11-10 08:54:00
#if可以判斷define的數值,像是linux kernel就有version的define值,寫module時可以用來判斷用不同版本的kernel要compile哪段code
作者: shibin (喜餅)   2022-11-10 11:25:00
長知識了
作者: wulouise (在線上!=在電腦前)   2022-11-10 23:21:00
#define不能跟變數混在一起.. #if只看#define
作者: CoNsTaR ((const *))   2022-11-11 03:38:00
為什麼會有這種需求?meta-programming?
作者: s9041200 (小明阿)   2022-11-12 22:51:00
4

Links booklink

Contact Us: admin [ a t ] ucptt.com