作者Hyozero (大宝)
看板C_and_CPP
标题[问题] 用#if判断variable的值
时间Thu Nov 10 00:23:24 2022
开发平台(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):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.226.230 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1668011007.A.958.html
1F:推 shibin: 我只知道#if通常用在判断是否已定义,不知能否判断数值 11/10 00:50
2F:→ shibin: 我说的定义是#define al,不是int a1; 11/10 00:50
4F:推 Richun: 判断定义与否应该是#ifdef跟#ifndef 11/10 01:00
5F:推 gusion: #if可以判断define的数值,像是linux kernel就有version的 11/10 08:54
6F:→ gusion: define值,写module时可以用来判断用不同版本的kernel要co 11/10 08:54
7F:→ gusion: mpile哪段code 11/10 08:54
8F:推 shibin: 长知识了 11/10 11:25
9F:推 wulouise: #define不能跟变数混在一起.. #if只看#define 11/10 23:21
10F:推 CoNsTaR: 为什麽会有这种需求?meta-programming? 11/11 03:38
11F:→ s9041200: 4 11/12 22:51