我是C编程的新手,无法编译应该是一个非常简单的函数。这个名为printSummary的函数只需要3个整数作为参数,然后打印一些文本和这些整数。例如,如果hits = 1,misses = 2,evictions = 3,则printSummary(hits,misses,evictions)应打印以下内容:
点击数:1次失误:2次驱逐:3次
以下是我正在使用的代码。提前感谢任何建议。
#include<stdio.h>
void printSummary(int hits, int misses, int evictions)
{
printf('hits: %d\n');
printf('misses: %d\n');
printf('evictions: %d\n');
}
int main()
{
int hit_count = 1;
int miss_count = 2;
int eviction_count = 3;
printSummary(hit_count, miss_count, eviction_count);
return 0;
}
编译此代码会给我几个警告,但没有错误。当我运行代码时,我遇到了分段错误。就像我说的那样,我对C来说相当新,所以我很可能只是一个简单的解决方案。提前感谢任何建议。
答案 0 :(得分:4)
进行以下更改。
printf("hits: %d\n",hits);
printf("misses: %d\n",misses);
printf("evictions: %d\n",evictions);
printf有一个
int printf(const char *format, ...)
原型。因此,在第一个参数中,您可以传递格式说明符,然后在下一个参数中提供要打印的实际变量/值
答案 1 :(得分:1)
错误是:
void printSummary(int hits, int misses, int evictions)
{
/* Name: printf
Prototype: int printf (const char *template, ...)
Description:
The printf function prints the optional arguments under the
control of the template string template to the stream stdout.
It returns the number of characters printed,or a negative value if
there was an output error.*/
printf("hits: %d\n", hits); // don't use ' it is used only for char variable for example: char a = 'c';
printf("misses: %d\n", misses);
printf("evictions: %d\n", evictions);
}
答案 2 :(得分:0)
未正确调用printf函数。您必须包含打印所需的整数:
printf("hits: %d\n", hits);
printf("misses: %d\n", misses);
printf("evictions: %d\n", evictions);
阅读有关printf函数here的更多信息。