Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数中的指针;=token";之前的预期表达式;_C_Pointers_C Preprocessor - Fatal编程技术网

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