我正在尝试初始化一个结构数组。结构中有函数指针,并且定义如下:
typedef struct{
char str[512];
char *fptr;
} infosection;
然后我尝试制作一个数组:
infosection section[] = {
("Software", *SoftwarePtr),
("Hardware", *HardwarePtr),
}
我使用一个简单的教程定义了函数指针。函数软件返回一个 int
int (*SoftwarePtr)()=NULL;
SoftwarePtr = &Software;
我的问题是关于我在编译时收到的警告。
初始化从没有强制转换的指针生成整数
警告引用节数组中的行。
所以我有两个疑问:
- 我是否误用了 */&/nother 作为指针?我已经尝试过每种方法的组合,但我似乎仍然得到相同的警告。我知道每种方法的含义,只是不确定它们在这个特定实例中的应用方式。
我可以
infosection struct
像在这里一样在数组中声明 的实例吗?我见过很多人们array of struct
在 a中声明的例子for loop
,但是我的最终产品需要包含在该数组中的一长串结构列表。我想让我的代码portable
使得人们可以add structs
(与要指向的函数相对应的字符串)以一种简单的类似列表的方式进行,如所见。这是声明数组实例的唯一方法吗infosection section[]; section[0].str="software"; section[0].fptr=SoftwarePtr;
structs
澄清一下,我已经对、array of structs
和进行了相当多的研究function pointers
。似乎这三者的组合正在造成麻烦。