读书人

#define跟typedef的区别和编译器有关

发布时间: 2013-09-28 10:01:20 作者: rapoo

#define和typedef的区别,和编译器有关吗?
在网上看了很多资料,和视频,都有讲过
#define和typedef的区别,今天我用Dev-c++试了一下,很奇怪,如下图,

#define跟typedef的区别,和编译器有关吗

为什么不报错呢?代码如下:

#include <stdio.h>
#include <stdlib.h>

#define PCHAR char*

int main()
{

PCHAR p3,p4,p5;
char i;
p3=&i;
p4=p3;
p5=&i; //为什么不报错呢?
printf("%d\n",p4);

system("PAUSE");
return 0;
}
求指点,是和编译器有关吗?dev-c++默认的编译器不是GCC吗?
[解决办法]
如果是C编译器的话
warning: assignment makes integer from pointer without a cast

C++编译器直接
error: invalid conversion from `char*' to `char'
[解决办法]

引用:
也就是说和编译器有关是吗?请问Dev-C++使用的是什么编译器?应该是C++的呀,我看网上清一色的说会报错

gcc包含了C和C++编译器。

如果扩展名是.c的话就是C编译器 .cpp就是C++编译器。
[解决办法]
你的例子已经可以很好的说明define和typedef的区别了!
至于不报错,可能因为是c源文件的原因吧!

读书人网 >C语言

热点推荐