C 函数中的指针;=token";之前的预期表达式;
我试图通过“简单地”计算一个圆来学习在函数中使用指针。我在“=”标记之前得到了错误C 函数中的指针;=token";之前的预期表达式;,c,pointers,c-preprocessor,C,Pointers,C Preprocessor,我试图通过“简单地”计算一个圆来学习在函数中使用指针。我在“=”标记之前得到了错误预期表达式,但无法理解原因。在…之前说期望的表达。。对我来说是不清楚的,什么样的 #define PI = 3.1415f void circle(float *wert) { *wert = ( (*wert) * (*wert) * PI ); } int main(void) { float radius; printf("radius input: "); sca
预期表达式,但无法理解原因。在…之前说期望的表达。。对我来说是不清楚的,什么样的
#define PI = 3.1415f
void circle(float *wert) {
*wert = ( (*wert) * (*wert) * PI );
}
int main(void) {
float radius;
printf("radius input: ");
scanf("%f", &radius);
circle(&radius);
printf("the circle size will be: %f", &radius);
}
这里应该没有=
。变成
#define PI (3.1415f)
应该是
#define PI 3.1415f
宏PI在代码中使用时被3.1415替换,它编译时没有错误,但半径5的圆不是0.0000。但这就是结果。你知道为什么吗?@muni,在printf
中将&radius
更改为radius
。@muni&var给出变量的地址,如果你想要这个值,只需使用变量名哦,天哪,我就是那个傻瓜xD,你大约半小时前解释过了!!我想这就是我显式处理地址时的情况。printf
中的&radius
应该是radius
。谢谢,另外#define PI=3.1415f应该是#define PI 3.1415f without=如果你包含了math.h
你会发现PI
已经是pre#define
d了。但是我甚至不能理解错误输出。错误出现在我使用数学的第12行,但PI是在前面定义的,第12行PI不是在=号之前。它编译了无误差,但半径5的圆不是0.0000。但这就是结果。你知道为什么吗?虽然使用括号来保护宏不会有什么坏处,但我看不出在一个简单的float literal的情况下可以解决哪些词汇歧义。如果你能提供一个省略它们会导致问题的例子,我会很感兴趣,因为我个人从来没有用括号来表示这样的常量。@SirDarius不,我没有这样的例子。这只是习惯的问题。
#define PI = 3.1415f
#define PI 3.1415f