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

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

2013-09-28 
#define和typedef的区别,和编译器有关吗?在网上看了很多资料,和视频,都有讲过#define和typedef的区别,今天

#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源文件的原因吧!

热点排行