c语言中宏名是什么类型

如题所述

第1个回答  2012-02-23
楼上的基本对。不过:
不是什么都有类型的,宏根本不是C编译器看得到的东西。
类型是编译器决定的,类型是编译器对变量、函数等分析的结果。
你说关键字“sizeof”是什么类型?
那些东西不是变量、也不是常量、不能引用、哪里有类型?
一般的,有类型的东西至少要是一个表示时间含义的常量、变量、函数等。

------------------------------------------------------------
#define MAX 10
int a = MAX;这里就MAX替换为10,这时10为整形
char s = MAX;这里就MAX替换为10,这时10自动转为字符型
在这里:10在任何时候都是整型,因为词法分析的时候,常量的类型就已经确定。
char s= int (10),但是s是char型,会自动转换。
C语言里表现不明显,毕竟是一个弱类型语言。
C++里面重载后,你看看会调用那个函数!
相似回答