我需要传递一个像这样的指针
extern int Si4709_dev_chan_get(__u32 *);
但gcc抱怨缺少括号。
Si4709_dev.h:130: error: expected ‘)’ before ‘*’ token
关于我能做什么的任何想法?
-Earlence
答案 0 :(得分:2)
也许您需要包含包含__u32 typedef
的标头,通常为<asm/types.h>
或<sys/types.h>
。
在任何情况下,它们都不应该是可移植的,你应该依赖于像uint32_t
那样更容易移植的东西,它应该是符合C99的实现的标准(它应该在stdint.h
中。
答案 1 :(得分:0)
这是一个旧的,可能是死的问题,但似乎对__u32实际上是什么有些混淆,但至少在3.16.1中,这就是我现在正在看的,__ u32定义于。 /include/uapi/asm-generic/int-ll64.h因此:
typedef unsigned int __u32;
所以,它只是一个无符号整数。
否则,你的语法是错误的,因为这是一个函数定义,你需要将指针命名为在函数中引用它:
extern int Si4709_dev_chan_get(__u32 *x);
否则,请参阅此内容以获取更多信息。
http://en.wikipedia.org/wiki/Pointer_%28computer_programming%29#Pass-by-address_using_pointers