1. 程式人生 > >c++基礎之多檔案專案,extern的用法

c++基礎之多檔案專案,extern的用法

main.cpp

#include<stdio.h>
extern double get_area(double r);

int main()
{
    double r;
    printf("enter r: ");
    scanf("%lf",&r);

    double area=get_area(r);
    printf("result:%.3lf\n",area);
    return 0;
}

other.cpp

double get_area(double r)
{
    return 3.14*r*r;
}

extern,外部的。
extern:宣告外部函式
在A.cpp中使用B.cpp中的函式,需要extern宣告;
extern:宣告外部全域性變數
在A.cpp中訪問B.cpp中的全域性變數,需要extern宣告;

extern的作用:告訴編譯器,在某個cpp檔案中,存在這麼一個函式/全域性變數。

注:符號(symbol):把函式名和全域性變數名,稱為符號。

使用extern

全域性變數的宣告與定義

宣告:
extern int a;
extern double b;
extern float numbers[5];

定義:
int a=10;
double b;
float numbers[5]={1.o,1.1};

注:全域性變數的宣告語句是不能加初始值的。
函式宣告語句中,extern可以省略。

專案生成過程:分為兩步

第一步:編譯 compile
將所有cpp轉化為obj檔案

第二步:連結 link
將各個obj檔案綜合在一起,生成可執行程式

extern意義:
1.模組化,將邏輯相關的功能放在同一個cpp裡
2.多人合作,讓不同的人編輯不同的cpp檔案。

相關推薦

c++基礎檔案專案extern用法

main.cpp #include<stdio.h> extern double get_area(double r); int main() { double r; printf("enter r: "); scanf(

C#基礎系列——執行緒的常見用法詳解

前言:前面幾節分別介紹了下C#基礎技術中的反射、特性、泛型、序列化、擴充套件方法、Linq to Xml等,這篇跟著來介紹下C#的另一基礎技術的使用。最近專案有點緊張,所以準備也不是特別充分。此篇就主要從博主使用過的幾種多執行緒的用法從應用層面大概介紹下。文中觀點都是博主個人的理解,如果有不對的地方望大家指正

C++】檔案專案extern用法

目錄 extern定義與使用 全域性變數和函式重定義 專案生成過程 extern定義與使用 extern告訴編譯器在某一個cpp檔案中,存在該函式或該全域性變數的定義。 (1)宣告外部函式; (2)宣告外部全域性變數。 程式功能:輸入半徑,求面積。 main.

C++語言程式設計基礎》學習類與物件檔案結構和預編譯命令​​​​​​​

C++程式的一般組織結構: 一個工程可以劃分為多個原始檔,例如: 類宣告檔案(.h檔案) 類實現檔案(.cpp檔案) 類的使用檔案(main()所在的.cpp檔案) 利用工程來組合各個檔案。Point.h class Point { //類的定義 public:

springboot模組專案引用子專案的mapper中的xml檔案

springboot多模組專案,引用子專案的mapper中的xml檔案,一直引用不到, 提示: Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): utopi

c++學習筆記檔案操作

每天進步一點點,努力奮鬥的小菜鳥。 曾經搞了好多次的C語言多檔案操作,都沒搞成功,昨天晚上終於搞成功了,雖然是簡單到爆的操作,但我還是挺高興的,哈哈哈。貼出來一方面怕自己忘,一方面若有初學者看到希望能對他們有點小小的幫助。現代數字訊號處理快要考試了,現在慌得一批,估計兩週以內會減少程式設計的時間

Python中的執行緒程式設計執行緒安全與鎖(一) 聊聊Python中的GIL 聊聊Python中的GIL python基礎執行緒鎖機制 python--threading執行緒總結 Python3入門執行緒threading常用方法

1. 多執行緒程式設計與執行緒安全相關重要概念 在我的上篇博文 聊聊Python中的GIL 中,我們熟悉了幾個特別重要的概念:GIL,執行緒,程序, 執行緒安全,原子操作。 以下是簡單回顧,詳細介紹請直接看聊聊Python中的GIL  GIL:&n

C++知識點備忘錄檔案程式編寫(六)

使用標頭檔案來定義使用者型別,為操作使用者型別的函式提供函式原型;並將函式定義放在一個獨立的原始碼檔案中。標頭檔案和原始碼檔案一起定義和實現了使用者定義的型別以及使用方式。最後,將main()和其他使用這些函式的函式放在第三個檔案中。 #include<iostr

c語言檔案程式設計即main檔案呼叫其他.c檔案的方法

c語言多檔案程式設計,即main檔案呼叫其他.c檔案的方法。 兩種方法的區別就是,gcc編譯時,是否加b.c檔案,不加的話,就在a.c檔案裡面,加#include "b.c" 至於extern 那一句,是否新增,編譯都是可以通過的,只是填加上去,大家都知道了,這個函式在其他地方定義了,這個地方只是呼

C++學習型及過載(overload)覆蓋(override)隱藏(hide)的區別

C++程式語言是一款應用廣泛,支援多種程式設計的計算機程式語言。我們今天就會為大家詳細介紹其中C++多型性的一些基本知識,以方便大家在學習過程中對此能夠有一個充分的掌握。   多型性可以簡單地概括為“一個介面,多種方法”,程式在執行時才決定呼叫的函式,它是面向物件程式設計

C語言檔案專案的例子

剛開始學習C語言,初學者。所以沒有用make,只是個初級簡單例子。 1,首先建立一個main.c放main函式: #include <stdio.h> #include "a.h" #include "func.c" int main() {     print

VS未能正確載入解決方案中的一個或專案無法讀取專案檔案“XXXX.vcxproj”解決方法

錯誤提示:點選確定後提示:問題原因:OpenCV路徑無法讀取導致無法正常載入檔案解決方案:使用記事本或文字編輯器開啟“XXXX.vcxproj”檔案,刪除OpenCV路徑,正常進入工程後重新配置OpenCV環境

C++檔案專案編譯

在codeblocks裡編譯一個含有多個檔案的專案。 編譯中出現很多錯誤。 NOTE 1: 如果專案中含有多個頭檔案,注意會出現“重複”問題。原因是主檔案裡會連續include每個標頭檔案,但是每一個原始檔裡都會包含#include ,這樣難免會重複定義產生衝突。解決的方

C語言基礎常用檔案操作2(附程式碼)

這裡在上一章的基礎上再介紹幾個常用的檔案操作的函式,包括fprintf、fscanf、ftell、fseek等。 檔案操作函式介紹 1、fprintf 函式 函式原型: int fpringf(FILE* stream,const char *forma

C#基礎析構函數

bsp alt 基礎 ges -1 c# ima log images C#基礎之析構函數

java基礎線程

健壯性 等待 block running 調用 相同 空間 獲取 行程 參考博客 http://www.mamicode.com/info-detail-517008.html 1.進程和線程的區別   進程:每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有

Java進擊C#——語法線程

明顯 源碼 max 更多 sta 關於 如何使用 關系 中文 本章簡言 上一章中筆者對C#一些獨有的語法點進行講解,相信也可以看C#的一些神奇之處。那麽本章主要是放在多線程這方面的知識。不管是C#還是JAVA在開發過程或多或少都會用到關於多線程的編程。當然筆者不

python基礎態與態性、綁定方法和非綁定方法

info lib img 感知 animal user save python基礎 assm 多態與多態性 多態 多態並不是一個新的知識 多態是指一類事物有多種形態,在類裏就是指一個抽象類有多個子類,因而多態的概念依賴於繼承 舉個栗子:動物有多種形態,人、狗、貓、豬等,py

html基礎(章節元素章節元素超鏈接錨點)詳細

第四天章節元素<body></body> 文檔內容 只能一個<body>元素<header></header>頭部標簽 logo 導航<main></main>網站中重要內容 一個文檔中只能有一個<main>在&

c#基礎】int 轉換 stringstring 轉換 int

方法 res data int 是否 tryparse php convert out 1、int 轉換 string方法:toString() 或者 Convert.toString()舉例: [code]phpcode://toString() int a =1; st