为什么我得到’被叫对象0不是函数错误’?
我是一个C#开发人员,试图学习C(后面跟着C ++)。 我正在本地工作,使用vim作为我的文本编辑器,使用Gnu C编译器(gcc)编译Ubuntu。
我正在尝试编写一个简单的Celcius => Fahrenheit转换器,我收到以下错误:
被称为对象’0’不是一个函数
我的代码如下:
#include main() { for(int i = 0; i < 300; i+20) { int celcius = (5/9)(i-32); printf("%d - %d \n", i, celcius); } }
我正在编译:
gcc FahrenheitToCelcius.c -std=c99
有人能指出我在这里做错了吗?
谢谢
在C(我也假设在其他语言中):))需要算术运算符来执行算术运算。
更改
int celcius = (5/9)(i-32);
至
int celcius = (5/9)*(i-32);
正如人们所指出的那样
int celcius = (5/9)(i-32);
应该
int celcius = (5/9)*(i-32);
但是,您获得该特定错误消息的原因是
int celcius = (5/9)(i-32);
在运行时被评估为
int celcius = (0)(i-32);
并且运行时系统将(0)视为指针。
因此,您需要更改数学以避免整数除法
这条线有问题:
int celcius = (5/9)(i-32);
因为编译器认为你正在尝试调用(5/9)
指定的函数。 如果你想做一个乘法,你应该做:
int celcius = (5/9)*(i-32);
代替。
此外,如果您希望从该计算返回浮点值,您应该:
int celcius = (5.0/9.0)*(i-32.0);
因为5/9
是整数除法,永远不会返回浮点值。
更改
int celcius = (5/9)(i-32)
至
int celcius = (5/9)*(i-32);