使用此签名声明哪种类型?

时间:2018-03-15 17:16:38

标签: c declaration typing

我是C新手,我有以下C函数:

typedef unsigned short  (API_ENTRY _DLL_PTR T_Lec_Dictionnaire)
                                    (   IN      unsigned char FARPTR    pcChemin,
                                        IN      short                   sNoTable,
                                        IN      char                    tcCode[9],
                                        IN      char                    tcPeriode[50],
                                        OUT     char FARPTR             szLibelle,
                                        IN_OUT  short FARPTR            psLgLibelle,
                                        OUT     unsigned short FARPTR   pusCodeErreur);

我对szLibelle变量有疑问:我无法确定要声明的类型以及如何使用它。

我试过

char libelle[] = "";
char * szLibelle = &libelle;

但函数返回错误代码54,这意味着"参数的值不合适"。

根据" sz"前缀似乎我的声明不正确,但我无法弄清楚为什么...... 文档说,对于这个参数:"包含由地址传递的字符的内存区域" (抱歉,从法语中翻译出来......)。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你的解散是100%正确的!但事实是第5个参数的处理方式取决于INOUT psLgLibelle的值。

博士对此很清楚......

再次感谢您的帮助!