【发布时间】:2015-10-13 14:37:15
【问题描述】:
程序不会打印数组,它只是空白。它会让我构建没有错误,但有一个警告声明:
warning C4477: 'printf' : format string '%s' requires an argument of type 'char *', but variadic argument 1 has type 'int (__cdecl *)(int)'
我想在程序中使用一个指针,这就是它在其中的原因,因为课程的章节。
#include "stdafx.h"
#define count 7
int form1(int a);
int form2(int a);
int form3(int a);
int form4(int a);
int form5(int a);
int form6(int a);
int form7(int a);
int main()
{
//creates a pointer to the functions for the program
int (*forms[count])(int) = { form1, form2, form3, form4, form5, form6 ,form7 };
//prints out the array for sizeof data types
for (unsigned int i = 1;i >= count;i++) {
printf("%s", forms[i]);
printf("\n");
}
return 0;
}
int form1(int a) {
a = sizeof(char);
return a;
}
int form2(int a) {
a = sizeof(short);
return a;
}
int form3(int a) {
a = sizeof(int);
return a;
}
int form4(int a) {
a = sizeof(long);
return a;
}
int form5(int a) {
a= sizeof(long long);
return a;
}
int form6(int a) {
a= sizeof(float);
return a;
}
int form7(int a) {
a= sizeof(double);
return a;
}
【问题讨论】:
-
for (unsigned int i = 1;i >= count;i++)count = 7andi = 1小于7所以你永远不会进入forloop
标签: c function function-pointers