这是什么类型的变量赋值语法?请解释为什么这段代码的工作方式和如何?看来变量是在没有=
运算符的情况下分配的。任何后续测试都会显示pi_num
返回3.14
。为什么呢?
#define SPECIAL_NUMBER 3.14
cout << "Special number is " << SPECIAL_NUMBER << endl;
#define SPECIAL_VARIABLE pi_num
float SPECIAL_VARIABLE = SPECIAL_NUMBER;
cout << "Pi: " << pi_num << endl;
答案 0 :(得分:1)
预处理后,这看起来像
cout << "Special number is " << 3.14 << endl;
float pi_num = 3.14;
cout << "Pi: " << pi_num << endl;
没有魔法。
答案 1 :(得分:1)
发生的事情是你掩盖了使用宏的情况。
请记住,预处理器会进行文本替换,并将宏替换为扩展。在您的代码中,/Users/user/Documents/Apache\\ Flex/bin/mxmlc -o ${file_base_name}.swf ${file}
# but tried also this
/Users/user/Documents/Apache\\ Flex/bin/amxmlc -o ${file_base_name}.swf ${file}
的每次使用都将被SPECIAL_NUMBER
替换,3.14
的每次使用都会被SPECIAL_VARIABLE
替换为代码编译之前。
因此编译器将您的代码视为
pi_num
我将单独讨论cout << "Special number is " << 3.14 << endl;
float pi_num = 3.14;
cout << "Pi: " << pi_num << endl;
是作业还是初始化(OP不太可能理解这种区别)。
我假设您知道称为pi(希腊字母)的数学量仅大约等于float pi_num = 3.14
。