首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言预编译有关问题,求大神指点

2013-12-28 
C语言预编译问题,求大神指点#include stdio.hint main(void) { #if PRINT_A Bprintf(define A) #e

C语言预编译问题,求大神指点
#include <stdio.h>
int main(void) {
 #if PRINT_A == B
  printf("define A");
 #else
  printf("not define A");
 #endif
 return 0;
}

运行结果是,打印出:define A;

感觉很奇怪,求大神解释
[解决办法]
PRINT_A和B符号都是没有定义的,所以值默认都为0,==的关系是成立的。

引用:
#include <stdio.h>
int main(void) {
 #if PRINT_A == B
  printf("define A");
 #else
  printf("not define A");
 #endif
 return 0;
}

运行结果是,打印出:define A;

感觉很奇怪,求大神解释

[解决办法]
#ifdef A
[解决办法]
引用:
但是如果在 printf("define A");下面添加一句printf("%d",B);会提示错误;

error: ‘B’ undeclared (first use in this function)

因为你的B不是代码中实际定义的变量,没有地址。。。。
[解决办法]
引用:
Quote: 引用:

PRINT_A和B符号都是没有定义的,所以值默认都为0,==的关系是成立的。

但是如果在 printf("define A");下面添加一句printf("%d",B);会提示错误;

error: ‘B’ undeclared (first use in this function) 

一个是预编译,一个是变量

热点排行