这些错误在C中意味着什么?

时间:2017-09-28 14:51:34

标签: c

我正在C中完成大学作业。我们必须编写一个简单的程序,只创建不同的数据类型(整数,长整数,双精度数)并使用sizeof()函数将它们打印出来。这是我为创建int的函数编写的代码:

void createInt(){
int i = 3;
printf(int i);
printf(sizeof(int i));
}

它出现以下错误: 对于“printf(int i);”它给出了:警告C4047:'function':'const char * const'与'int'的间接级别不同 对于“printf(sizeof(int i));”它给出了:警告C4024:'printf':正式和实际参数1的不同类型

非常感谢任何帮助。我是C的新手。以前从未使用过它。 谢谢!

2 个答案:

答案 0 :(得分:1)

错误的含义是您将错误类型的参数传递给函数printf。它被声明为const char *作为其第一个参数。您传递int然后传递size_t

printf只接受一个参数时,该参数必须为字符串。但是,如果要打印整数i的内容,请使用printf("%d", i)或类型为sizeof(i)的{​​{1}}的值,请使用以下内容:{{1} }

答案 1 :(得分:-2)

printf需要一个字符串作为其第一个参数。你的意思是

printf("%i\n", i);
printf("%zu\n", sizeof i);