我使用了以下链接中的代码:
我定义了这样的结构
typedef struct {
char *name; /* User printable name of the function. */
Function *func; /* Function to call to do the job. */
char *doc; /* Documentation for this function. */
} COMMAND;
编译代码时,编译器会显示以下警告:
“函数已弃用[-Wdeprecated-declarations]”
那么如果我不能使用函数类型,我应该改变什么类型?
答案 0 :(得分:8)
Function
是一个typedef
(指向函数返回int
的指针的别名),被library标记为已弃用:
typedef int Function () __attribute__ ((deprecated));
只需使用:
typedef struct {
char *name; /* User printable name of the function. */
int (*func)(); /* Function to call to do the job. */
char *doc; /* Documentation for this function. */
} COMMAND;
答案 1 :(得分:-2)
我认为你应该弃用功能。以下可能有效。
#include <stdio.h>
typedef void (*Function)();
typedef struct {
char *name; /* User printable name of the function. */
Function *func; /* Function to call to do the job. */
char *doc; /* Documentation for this function. */
}COMMAND;
int main() {
COMMAND commond;
puts( "end" );
return 0;
}