Chinaunix

标题: class 是c++的关键字,不是c的关键字 [打印本页]

作者: qfmeal    时间: 2017-07-25 10:58
标题: class 是c++的关键字,不是c的关键字
qnx 有这样的头文件:ado_pci.h
有这样的内容:
/***** structures ***********/
struct ado_pci
{
        int32_t         index;
        int32_t         id;                                                /* id returned by pci_attach() call */
        void                   *handle;                                /* handle returned by pci_attach_device() call */
        uint16_t        vendor;
        uint16_t        device;
        uint16_t        subsystem;
        uint16_t        subsysvendor;
        uint8_t                devfunc;
        uint8_t                revision;
        uint8_t                class_protocol;
        uint8_t                busnumber;       
        uint32_t        irq;
        uint64_t        bmstr;                                        /* CPU to PCI busmaster translation (pci_addr = cpu_addr + bmstr) */
        uint64_t        iobase[6];
        uint32_t        iolen[6];
        uint32_t        class;
        uint64_t        membase[6];
        uint32_t        memlen[6];
        uint32_t        spare[32];
};


编译不过,一看有这一行:uint32_t        class;
把自己的源文件改成c才能编译通过,感觉很无语。

作者: cokeboL    时间: 2017-07-25 17:29
你extern “C” { #include "xxx.h" }不就行了
作者: qfmeal    时间: 2017-07-26 10:41
cokeboL 发表于 2017-07-25 17:29
你extern “C” { #include "xxx.h" }不就行了



我试了一下在头文件中添加如下代码:
extern "C"
{
#include <ado_pci.h>
}


不行哦

作者: windoze    时间: 2017-07-26 10:56
嘿嘿,还有virtual呢。
话说Linus专门在kernel里用了叫virtual的变量,我脚着他就是想给C++进入内核制造点障碍。
作者: 爻易    时间: 2017-07-26 12:53
古之避讳问题在今时之延续中文在这方面很有经验优势,当某字被禁很容易找到代替
作者: cokeboL    时间: 2017-07-27 10:01
回复 3# qfmeal

那你看报错再弄啊。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2