欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決gcc編譯報錯unknown type name ‘bool‘問題

 更新時間:2023年07月17日 08:46:53   作者:某猿蚊常叮  
這篇文章主要介紹了解決gcc編譯報錯unknown type name ‘bool‘問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

gcc編譯報錯unknown type name ‘bool‘

錯誤描述

unknown type name ‘bool’

最近使用C實現(xiàn)數(shù)據(jù)結(jié)構(gòu)碰到了以下這個錯誤

? ?LinkedList gcc list.c?
list.c:14:1: error: unknown type name ‘bool'; did you mean ‘_Bool'?
?bool is_empty(PNODE pHead);
?^~~~
?_Bool
list.c:77:1: error: unknown type name ‘bool'; did you mean ‘_Bool'?
?bool is_empty(PNODE pHead)
?^~~~
?_Bool
list.c: In function ‘is_empty':
list.c:80:9: error: ‘true' undeclared (first use in this function); did you mean ‘free'?
? return true;
? ? ? ? ?^~~~
? ? ? ? ?free
list.c:80:9: note: each undeclared identifier is reported only once for each function it appears in
list.c:82:9: error: ‘false' undeclared (first use in this function); did you mean ‘fclose'?
? return false;
? ? ? ? ?^~~~~

錯誤原因

未知的類型名:‘bool’, 因為在C語言標準(C89)沒有定義布爾類型,所以會報錯。

而C99提供了一個頭文件<stdbool.h>定義了bool,true代表1,false代表0。

只要導(dǎo)入stdbool.h,就能非常方便的操作布爾類型了。

解決方法

#include <stdbool.h>

gcc和g++編譯c或者c++文件碰到的問題

gcc 和 g++ 都是 GNU (組織) 的一個編譯器。   

誤區(qū)一:gcc只能編譯c代碼,g++只能編譯c++代碼   

兩者都可以,但是請注意:   

1. 后綴為.c 的,gcc 把它當(dāng)作是 C 程序,而 g++ 當(dāng)作是 c++ 程序;后綴為.cpp 的,兩者都會認為是 c++ 程序,注意,雖然 c++ 是 c 的超集,但是兩者對語法的要求是有區(qū)別的。C++ 的語法規(guī)則更加嚴謹一些。  

2. 編譯階段,g++ 會調(diào)用 gcc,對于 c++ 代碼,兩者是等價的,但是因為 gcc 命令不能自動和 C++程序使用的庫聯(lián)接,所以通常用 g++ 來完成鏈接,為了統(tǒng)一起見,干脆編譯 / 鏈接統(tǒng)統(tǒng)用 g++ 了,這就給人一種錯覺,好像 cpp 程序只能用 g++ 似的。   

誤區(qū)二:gcc不會定義__cplusplus宏,而g++會

實際上,這個宏只是標志著編譯器將會把代碼按 C 還是 C++ 語法來解釋,如上所述,如果后綴為.c,并且采用 gcc 編譯器,則該宏就是未定義的,否則,就是已定義。   

誤區(qū)三:編譯只能用gcc,鏈接只能用g++   

嚴格來說,這句話不算錯誤,但是它混淆了概念,應(yīng)該這樣說:編譯可以用 gcc/g++,而鏈接可以用 g++ 或者 gcc  

-lstdc++。因為 gcc 命令不能自動和 C++程序使用的庫聯(lián)接,所以通常使用 g++ 來完成聯(lián)接。但在編譯階段,g++ 會自動調(diào)用 gcc,二者等價。

用 gcc 編譯 c++ 文件:

#gcc -o test.exe test.cpp -lstdc++

用 GCC 編譯 c++ 文件時,必須加上 - lstdc++ 的參數(shù)選項,告訴編譯器自動調(diào)用 g++ 編譯器來自動鏈接 C++ 里面的庫函數(shù),否側(cè),生成的可執(zhí)行文件不能運行成功。

問題 2

for(int i = 0; i < 100; i++)
{
? ? ?.............
}

使用 gcc 直接編譯報錯,因為 C99 規(guī)定,變量必須事先定義好,不能使用時再定義,但是這種定義變量的方式在 C++ 中合法

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++發(fā)送HTTP請求的實現(xiàn)代碼

    C++發(fā)送HTTP請求的實現(xiàn)代碼

    這篇文章主要介紹了C++發(fā)送HTTP請求的實現(xiàn)代碼,需要的朋友可以參考下
    2014-06-06
  • C語言sizeof與字符串處理與動態(tài)內(nèi)存分配及main函數(shù)參數(shù)詳解

    C語言sizeof與字符串處理與動態(tài)內(nèi)存分配及main函數(shù)參數(shù)詳解

    這篇文章主要介紹了C語言字符串處理函數(shù)、sizeof、動態(tài)內(nèi)存分配函數(shù)、main函數(shù)參數(shù)問題,static在修飾變量的時候,如果是修飾全局變量,則跟全局變量功能一樣,通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • C++ auto自動類型推導(dǎo)規(guī)則和使用詳解

    C++ auto自動類型推導(dǎo)規(guī)則和使用詳解

    C++11 賦予 auto 關(guān)鍵字新的含義,使用它來做自動類型推導(dǎo)。也就是說,使用了 auto 關(guān)鍵字以后,編譯器會在編譯期間自動推導(dǎo)出變量的類型,這樣我們就不用手動指明變量的數(shù)據(jù)類型了
    2022-08-08
  • C語言大作業(yè)之圖書管理系統(tǒng)的實現(xiàn)詳程

    C語言大作業(yè)之圖書管理系統(tǒng)的實現(xiàn)詳程

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計算機應(yīng)用的普及,利用計算機對圖書館的日常工作進行管理勢在必行,趁著寒假時間手把手帶你用C語言實現(xiàn)一個圖書管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • C語言中((type *)0) 和(type *0)區(qū)別小結(jié)

    C語言中((type *)0) 和(type *0)區(qū)別小結(jié)

    ((type *)0)?和?(type *0)?在 C 和 C++ 中有不同的含義和用途,本文主要介紹了C語言中((type *)0) 和(type *0)區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • C++二叉搜索樹模擬實現(xiàn)示例

    C++二叉搜索樹模擬實現(xiàn)示例

    本文主要介紹了C++二叉搜索樹模擬實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 用C語言畫一個圓

    用C語言畫一個圓

    大家好,本篇文章主要講的是用C語言畫一個圓,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Qt數(shù)據(jù)庫應(yīng)用之?dāng)?shù)據(jù)打印到pdf

    Qt數(shù)據(jù)庫應(yīng)用之?dāng)?shù)據(jù)打印到pdf

    因為xls打開以后用戶可以修改數(shù)據(jù)造假之類的,而pdf默認是不可編輯的,除非借助專業(yè)的工具,所以如果想要限定用戶導(dǎo)出數(shù)據(jù)不能被更改,那導(dǎo)出pdf是最佳選擇。所以本文將為代價介紹Qt實現(xiàn)數(shù)據(jù)打印到pdf的方法,需要的可以參考一下
    2022-01-01
  • C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門

    C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門

    這篇文章主要介紹了C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門,這里以一維數(shù)組作為基本條件進行例子講解,需要的朋友可以參考下
    2015-12-12
  • C++日期類實現(xiàn)的完整操作

    C++日期類實現(xiàn)的完整操作

    C++標準庫沒有提供所謂的日期類型,C++繼承了C語言用于日期和時間操作的結(jié)構(gòu)和函數(shù),這篇文章主要給大家介紹了關(guān)于C++日期類實現(xiàn)的完整操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06

最新評論