在模拟 CPU 时,想直接写一个函数指针数组,函数指针如此声明 :
返回参数 (*变量名)(传入参数)
数组则
返回参数 (*变量名[数组大小])(传入参数)
关键在于,我需要在头文件中定义这个数组,而在 ins.h 中定义后,在其他文件中 include 时,编译器报错,标识符重定义。
1 |
|
但是,如果,不将此变量在头文件中声明,又无法在别的 c 文件中访问该变量。
经过一晚上的摸索,将该数组定义在 ins.c 文件中,加入 extern 关键字,在需要访问该变量的 c 文件中,先声明 extern 。
使用 extern 关键字,我早就想到了,关键在于,不知道如何声明函数指针变量。
刚开始,我还使用 typedef 定义了函数指针类型别名
typedef void (*pfun)();
,尝试在别的 c 文件中
pfunc funcs[10];
声明,结果报错
废话不多说:
ins.c
1 | void f_NOP(); |
其他需要访问该变量的 c 文件:
1 |
|
Author: 哒琳
Permalink: http://blog.jieis.cn/2022/4072b61c-263b-4927-9896-4355a235e965.html
Comments