【发布时间】:2013-06-24 23:49:58
【问题描述】:
这是示例代码:
typedef struct
{
char symname[DLL_MAX_SYMNAME_LEN]; // Symbol name char
filename[DLL_MAX_FILENAME_LEN]; // File name from which the
// symbol comes
unsigned int vaddr; // Exact address of nearest symbol
} dll_sym_info_t;
extern void sbblink_write_one_frame(u8 In,u8 F,u8 Ph,u8 Sub,u8 Ch,u8 S,u8 T, u8 P);
const char * str_sbblink_write_OP_frame_channels = "sbblink_write_one_frame";
void (*fun_sbblink_write_OP_frame_channels) (u8 In,u8 Fpga,u8 InSlot,u8 SubCh,u8 Chan,u8 Size,u8 Type,u8 Print);
.
.
fun_sbblink_write_OP_frame_channels = (void (*) (u8,u8,u8,u8,u8,u8,u8,u8))sym.vaddr;
.
.
fun_sbblink_write_OP_frame_channels (0,SBBL_FLINK,PhSlotRRH,i,0,0,0,0);
但即使是错误:
error: too few arguments to function 'fun_sbblink_write_OP_frame_channels'
请帮帮我。
谢谢,
【问题讨论】:
-
你能给我们提供
sym,看起来像struct是的! -
还提供
vaddr指向的函数声明.. -
typedef struct { char symname[DLL_MAX_SYMNAME_LEN]; // 符号名称 char 文件名[DLL_MAX_FILENAME_LEN]; // 符号来自的文件名 unsigned int vaddr; // 最近符号的确切地址 } dll_sym_info_t;
-
extern void sbblink_write_one_frame(u8 In,u8 F,u8 Ph,u8 Sub,u8 Ch,u8 S,u8 T, u8 P);
-
当我在
dll_sym_info_t内的filename[]声明之前添加char标记以及为SBBL_FLINK、PhSlotRRH和@987654332 提供定义时,您的代码编译得很好@。您确定要发布您的真实代码吗?你能提供一个Short, Self Contained, Correct (Compilable), Example 来证明你的问题吗?
标签: c function pointers compiler-errors arguments