Rag*_*rma 0 c macros
对于以下代码,我得到输出as-Geeks.
#include <stdio.h> #define ISEQUAL(X, Y) X == Y int main() { #if ISEQUAL(X, 0) printf("Geeks"); #else printf("Quiz"); #endif return 0; }
解释这种输出的原因.
小智 5
条件宏#if ISEQUAL(X, 0)扩展为#if X == 0.预处理结束后,所有未定义的宏都使用默认值进行初始化0.由于宏X尚未定义,因此初始化为0.所以,打印出"极客".
#if ISEQUAL(X, 0)
#if X == 0
0
X
归档时间:
10 年,8 月 前
查看次数:
47 次
最近记录: