函数“typeof”在RVDS 5.01上隐式声明

时间:2015-08-13 07:54:19

标签: c arm typeof rvds

我正在使用ARM编译器为Android手机编译调制解调器代码 我收到了以下错误:

function "typeof" declared implicitly

然后我应该使用__typeof__。但我得到了同样的错误:

function "__typeof__" declared implicitly

我甚至试过__typeof。但它们都不起作用。

为什么?

编译器是RVDS 5.01。 命令行包含在某些脚本中。

错误消息是:

"/opt2/huanglianjun/PD1401V-modem-1.2.1.c1/boot_images/core/storage/ext4/src/com‌​mon/div64.h", line 47:
Error: #223-D: function "typeof" declared implicitly.

代码是:

#define do_div(n,base) do{  \ 
      uint32_t __base = (base); \ 
      uint32_t __rem;   \ 
      (void)(((typeof((n)) *)0) == ((uint64_t *)0));    \ 
      if (((n) >> 32) == 0) {   \ 
          __rem = (uint32_t)(n) % __base;   \ 
          (n) = (uint32_t)(n) / __base; \ 
      } else    \ 
          __rem = __div64_32(&(n), __base); \ 
          __rem;    \ 
    }while(0)

1 个答案:

答案 0 :(得分:1)

如果我向右阅读the documentation,则至少支持typeof至少RVDS 3.0,但您需要通过将--gnu标记传递给{{1}来启用GNU mode }。