警告:从不兼容的指针类型初始化

时间:2011-11-29 23:44:25

标签: c gcc

我不明白错误在哪里。 为什么这个错误信息: 从不兼容的指针类型初始化。 朋友,请帮帮我。

const struct _displayout_default
{
const char* length;
const char**  buf;

}DisplayOut_DEFAULT[2] =  
{
    {
    "02", 
    (const char*[]){
        "01",
        "02",
        "03",
        "04"
        }
    },
    {
    "02", 
    (const char*[]){
        "01",
        "02",
        "03",
        "04"
        }
    }
};    

更新

MPLAB®C编译器 对于PIC32 MCU

C标准信息   美国国家信息系统标准 - 编程语言 - C.   美国国家标准协会(ANSI),11 West 42nd。街,纽约,   纽约,10036。

海湾合作委员会文件 http://gcc.gnu.org/onlinedocs/ http://sourceware.org/binutils/

编译器选项:   -g -mlong-calls -DNDEBUG -Os

2 个答案:

答案 0 :(得分:3)

编辑(旧答案消失)

不幸的是,我无法使用相同的编译器和相同的选项重现该消息:

T:\>"c:\Program Files (x86)\Microchip\mplabc32\v2.01\bin\pic32-gcc.exe" -g -mlong-calls -DNDEBUG -Os test.c

没有错误。

pic32mx-gcc-4.5.1.exe同样 - 没有错误。


详细

来源

const struct _displayout_default
{
    const char* length;
    const char**  buf;

}DisplayOut_DEFAULT[2] =  
{
    {
        "02", 
        (const char*[]){
            "01",
            "02",
            "03",
            "04"
        }
    },
    {
        "02", 
        (const char*[]){
            "01",
            "02",
            "03",
            "04"
        }
    }
};    

int main(int argc, const char *argv[])
{

    return 0;
}

编译器版本:

    pic32-gcc.exe: 2: No such file or directory
    Using built-in specs.
    COLLECT_GCC=c:\Program Files (x86)\Microchip\mplabc32\v2.01\bin\pic32-gcc.exe
    COLLECT_LTO_WRAPPER=c:/program files
    (x86)/microchip/mplabc32/v2.01/bin/../pic32mx/bin/gcc/pic32mx/4.5.1/lto-wrapper.exeTarget:
    pic32mxConfigured with: ../../src45x/gcc/configure --build=i386-pc-linux-gnu
    --host=i586-mingw32msvc --target=pic32mx --disable-threads --disable-libmudflap
    --disable-libssp --disable-libstdcxx-pch --disable-hosted-libstdcxx
    --with-arch=pic32mx --enable-sgxx-sde-multilibs --disable-threads --with-gnu-as
    --with-gnu-ld --disable-sim --disable-bootstrap --enable-obsolete
    --disable-__cxa_atexit --disable-libfortran --enable-languages=c
    --disable-shared --with-newlib --disable-nls
    --prefix=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/pic32-tools
    --disable-libgomp --without-headers --disable-libffi --enable-gofast
    --enable-poison-system-directories --program-prefix=pic32-
    --libexecdir=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/pic32-tools/pic32mx/bin
    --with-dwarf2 --with-host-libstdcxx='-static-libgcc
    -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'
    --with-libelf=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/canadian-cross-build/mingw32-libs
    --enable-lto
    --with-gmp=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/canadian-cross-build/mingw32-libs
    --with-ppl=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/canadian-cross-build/mingw32-libs
    --with-cloog=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/canadian-cross-build/mingw32-libs
    --with-zlib=/home/c11067/work/C32/builds/pic32-microchip-release-2.01-freeze-20110726/canadian-cross-build/mingw32-libs
    --with-bugurl=http://www.microchip.com/supportThread model: singlegcc version
    4.5.1 MPLAB C Compiler for PIC32 MCUs v2.01-20110816 (Microchip Technology)

答案 1 :(得分:2)

您的代码没有任何问题,并且它不会对gcc 4.4.5或clang 1.1发出任何警告。