2013-06-27 2 views
0

Это пример кода:слишком мало аргументов, чтобы функционировать, даже если посчитать аргументы являются правильными

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' 

Пожалуйста, помогите мне с этим.

THanks,

+1

Можете ли вы предоставить нам «сим», выглядит как «структура»! –

+1

также предоставляют объявление функции, на которое указывает 'vaddr'. – VoidPointer

+0

typedef struct { char symname [DLL_MAX_SYMNAME_LEN]; // Имя символа char filename [DLL_MAX_FILENAME_LEN]; // Имя файла, из которого приходит символ // unsigned int vaddr; // Точный адрес ближайшего символа } dll_sym_info_t; – user2185454

ответ

0

Попробуйте и сохраните его простым. Если "комплекс" проблема не удается, попробуйте более простой подход, т.е.

/* Since this doesn't work, let's try something that really should work 
    fun_sbblink_write_OP_frame_channels (0,SBBL_FLINK,PhSlotRRH,i,0,0,0,0); */ 

sbblink_write_one_frame(1,2,3,4,5,6,7,8); 

Затем, если это работает попробовать:

/* Since this doesn't work, let's try something that really should work 
    fun_sbblink_write_OP_frame_channels (0,SBBL_FLINK,PhSlotRRH,i,0,0,0,0); */ 

/* OK, this worked, let's go one step forward 
sbblink_write_one_frame(1,2,3,4,5,6,7,8); */ 
fun_sbblink_write_OP_frame_channels (1,2,3,4,5,6,7,8); 

Тогда попробуйте:

/* OK, this silly stuff worked, let's go all the way 
sbblink_write_one_frame(1,2,3,4,5,6,7,8); 
fun_sbblink_write_OP_frame_channels (1,2,3,4,5,6,7,8); */ 
fun_sbblink_write_OP_frame_channels (0,SBBL_FLINK,PhSlotRRH,i,0,0,0,0); 

ошибка/успех вы получаете каждую попытку, которая должна помочь вам решить эту проблему.