Function 在C中使用函数指针时出错 #包括 #包括 void func1(void){printf(“1\n”);} void func0(void){printf(“0\n”);} 类型定义结构{ 无效(*func0)(无效); 无效(*func1)(无效); }mainJT; 静态常量mainJT coreJT={ 核心函数0, 核心功能1 }; mainJT currJT; int main() { currJT=coreJT; coreJT.core_func0(); getchar(); 返回0; }
请帮我纠正错误,我肯定我犯了一些明显的错误。谢谢。我看到很多错误: 例如:初始化结构的正确方法是: /*将类型点定义为具有整数成员x,y的结构*/Function 在C中使用函数指针时出错 #包括 #包括 void func1(void){printf(“1\n”);} void func0(void){printf(“0\n”);} 类型定义结构{ 无效(*func0)(无效); 无效(*func1)(无效); }mainJT; 静态常量mainJT coreJT={ 核心函数0, 核心功能1 }; mainJT currJT; int main() { currJT=coreJT; coreJT.core_func0(); getchar(); 返回0; },function,pointers,Function,Pointers,请帮我纠正错误,我肯定我犯了一些明显的错误。谢谢。我看到很多错误: 例如:初始化结构的正确方法是: /*将类型点定义为具有整数成员x,y的结构*/ #include <stdio.h> #include <string.h> void func1 (void) { printf( "1\n" ); } void func0 (void) { printf( "0\n" ); } typedef struct { void (*func0)(void); voi
#include <stdio.h>
#include <string.h>
void func1 (void) { printf( "1\n" ); }
void func0 (void) { printf( "0\n" ); }
typedef struct {
void (*func0)(void);
void (*func1)(void);
}mainJT;
static const mainJT coreJT = {
core_func0,
core_func1
};
mainJT currJT;
int main()
{
currJT=coreJT;
coreJT.core_func0();
getchar();
return 0;
}
因此,您的代码部分是:
typedef struct {
int x;
int y;
} point;
/* Define a variable p of type point, and initialize all its members inline! */
point p = {1,2};
完全错误
声明和定义的函数core\u func1 core\u func0在哪里。我看不到它们
我想你首先需要检查一下你的问题不太清楚,但我知道我能找到什么
mainJT coreJT = {
core_func0;
core_func1;
};
在这里,您将声明一个具有函数指针成员func0
和func1
的结构。然后,您试图通过初始值设定项列表定义coreJT
变量:
typedef struct {
void (*func0)(void);
void (*func1)(void);
} mainJT;
但这不起作用,因为没有名为core\u func0
或core\u func1
的函数!
你也试着打电话
coreJT.core_func0()
这也是不正确的,因为您的结构没有名为core\u func0
的成员
对于可能的解决方案,请尝试重命名函数,如下所示:
static const mainJT coreJT = {
core_func0,
core_func1
};
并通过指针调用函数
coreJT.func0()
请让我知道如何重命名函数。如果您可以发布完整的代码,这会有所帮助。谢谢。@user1128265我刚才看了你的另一个问题,这可能是基本问题,所以请阅读我的第一个问题谢谢Anthales,这很有帮助!
void core_func1 (void) { printf( "1\n" ); }
void core_func0 (void) { printf( "0\n" ); }