VS2005中遇到一些C語言不相容的問題

2021-07-03 03:37:30 字數 936 閱讀 1919

比如下面程式

#inlcude struct myarr

;bool is_empty(struct myarr *parr);

int main(void)

; struct myarr *parr = a;

if(is_empty)

printf("陣列為空!\n");

else

for(int i=0;icnt; i++)

printf("%d\n",parr->pbase[i]);

return 0;

}bool is_empty(struct myarr *parr)

生成專案的時候出現錯誤,提示如下:

error c2061: syntax error : identifier 'is_empty'.

因為bool是c++型別,c語言中沒有bool型別,你的原始檔是.c檔案,預設按c語言編譯器編譯,所以報錯了,你可以定義bool型別:typedef int bool;也可以把檔案字尾名改為.cpp,用c++編譯器編譯。

當我把這個test.c檔案該位test.cpp再次編譯的時候就沒有錯誤了。

當然這是一種解決方案。另外還有2中解決辦法

1、就是在前面定義bool型別

typedef int bool;

光這樣定義是不行的,還會提示true和false沒有定義,因此我們再把true和false定義下

#define true 1

#define false 0

加上這三句**之後,test.c再次編譯就成功了。

2、直接把bool和true,false全部一次定義進去,我們用每句enum。

typedef enum bool 

bool;

這樣之後也就能成功編譯了。

vs2005中編寫純c程式

步入.net時代後,vs馬上就換了個臉,對那些平時用vc做作業的人來說,立馬就受到了個下馬威 直接新建源 不能編譯了!看到選單欄上一堆一堆的 選項,彷彿vs2005已經不能作為純c的ide使用了。然而vs的功能太強大,到底能否使用vs2005 2003編寫純c程式呢?當然可以!只是步驟 會麻煩一些。...

VS2005 製作安裝程式的一些網路教程

原文寫於 2006 12 14 在vs2005中,製作安裝程式需要建立setup project,後面的操作就比較簡單了。我在網上看了一些文章,把它們列在下面 文章 內容 備註 customizing setup project in visual studio.net 2005 簡單介紹了setu...

VS2005中C 的模板丟失問題

vs2005中我建立乙個c 的windows應用程式,準備在專案中新增乙個windows窗體,但是系統提示找不到模板資訊,只能整合別的模板資訊,怎麼樣把我這個功能恢復正常?1。找到 f program files microsoft visual studio 8 common7 ide proje...