strcpy沒有宣告 c 標頭檔案詳解

2021-07-04 19:56:30 字數 1255 閱讀 1171

2010-10-23 12:19

4971人閱讀

收藏舉報

c++string

iostream

cmath.h語言

協議分發程式程式在公司機器上編譯執行良好,而我在我的虛擬機器上編譯,卻出下如下錯誤:

msg.cpp:3101: error: 『strcpy』 was not declared in this scope

而且程式中使用的map, queue,list等都能正確使用,唯獨string不能使用。

而且通過#find ./ -name string –print 也能以現在/usr/include/c++/4.4.0目錄下存在string檔案。

如何解決?

分析:#include 在c++中,是指標準化以前的標準c庫中的字char*字串處理函式

#include 中在2023年標準化以後,c++中含的stl的string容器

#include 是在2023年標準化以後,的演變。

總之你記住一句話:與是完全不同的兩個東西。

用歷史來讓你更理解吧!!!

c語言是2023年由美國貝爾實驗室的d.m.ritchie研製成功。c語言的標頭檔案包含格式如下:

#include

#include

#include

20世紀80年代初,bjarne stroustrup博士及其同事在c語言的基礎上成功研發出c++語言。c++是由c發展來的,與c相容,是對c的擴充套件,或者說是c的超集(當時的名稱也不叫c++, 而叫c with class)。因為最初的c++的標頭檔案包含格式自然而然與c保持了一致:

// (標準化以前c庫)

#include

#include

#include

// 標準化以前的標準c++庫

#include

2023年,對c++進行了標準化。在這次行動中,把標準c++庫的元件放在乙個名位std的namespace裡面,同時為了區別c庫,也產生了如下名稱:

// 標準化以後的標準c庫

#include

#include

#include

// 標準化以後的標準c++庫

#include

1995-2023年,出現並開始大量使用標準模板庫stl及boost庫

#include

#include

#include

原文**:

c 前置宣告與標頭檔案引用

優點 1.c 前置宣告,可以節約預處理器的展開時間,也就是在編譯的時候速度是增快了,但是伴隨著很多坑。2.當被前置宣告的類改動後,只需要編譯包含改動類標頭檔案的原始檔,所有使用了前置宣告的原始檔不需要改動 體現1.所有引用testb.h 的其他 cpp檔案不用再去包含 tem a 與 util 這倆...

C 標頭檔案與類的宣告

complex.h 1 防衛式宣告 ifndef complex 告訴編譯器曾經沒有 define complex endif 作用 發展乙個複數,把它放在標頭檔案中,因為很多程式要用到這個標頭檔案,include complex 當第一次include這個標頭檔案後,編譯器就會進入標頭檔案中,並且...

「不完全型別」指在C 中有宣告但又沒有定義的型別

用delete刪除乙個只有宣告但無定義的型別的指標,是危險的。這通常導致無法呼叫析構函式 包括物件本身的析構函式 成員 基類的析構函式 從而洩露資源。示例 引用 class c 在另乙個cpp檔案中定義 c createc 在另乙個cpp檔案中定義 int main 初步分析 型別c沒有被定義,所以...