
有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 main( ) { int i; for(i=1;i<=NUM;i++) printf(
1个回答
展开全部
#define是用一段文字代替另一段文字
编译的时候N是“2”,M是“N+1”,所以M最后为“2+1”
NUM是“2*M+1”,把其中的M换成“2+1”可以得到 NUM为“2*2+1+1”为6,系统不会给M自动加括号
非要用宏来实现的话只能在每次使用N,M和NUM的时候手动加上括号。
一般用常量变量,这样写
const int N=2;
const int M=N+1;
const int NUM=2*M+1
main()
{int i;
for int i;
for(i=1;i<=NUM;i++) printf(
编译的时候N是“2”,M是“N+1”,所以M最后为“2+1”
NUM是“2*M+1”,把其中的M换成“2+1”可以得到 NUM为“2*2+1+1”为6,系统不会给M自动加括号
非要用宏来实现的话只能在每次使用N,M和NUM的时候手动加上括号。
一般用常量变量,这样写
const int N=2;
const int M=N+1;
const int NUM=2*M+1
main()
{int i;
for int i;
for(i=1;i<=NUM;i++) printf(
参考资料: C++教材
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询