宣告:告訴系統有乙個函式,可以重複宣告。
定義:函式具體是如何實現的,不可以重複。
其報錯位置:
源程式—預編譯------->***編譯(未宣告)***—生成物件問件.o--------->鏈結(未定義)—>可執行檔案
#include
intadd
(int a,
int b)
intmain()
所呼叫的函式必須在之前定義。
#include
void
fundb
(int n)
void
funda
(int n)
intmain()
#include
void
funda
(int);
void
fundb
(int);
void
fundb
(int n)
void
funda
(int n)
intmain()
g++ testab.cpp -c // 只編譯不鏈結 產生物件檔案即.o檔案。
g++ testab.o //鏈結物件檔案。
函式定義在其它函式中
#include
void
funda
(int);
void
fundb
(int);
intmain()
#includevoid funda(int );
void fundb(int );
void fundb(int n)
void funda(int n)
先編譯兩個原始檔,後鏈結兩個目標檔案;
g++ -c unite.cpp
g++ -c testab.cpp
g++ testab.o unite.o
./a.out
g+±e test.h 檢視include匯入的內容。
條件式 定義。如果沒有定義標頭檔案,則定義頭。 解決一次編譯,重複問題。
#ifndef _header2_h
#define _header2_h
#endif
標頭檔案:只含函式的宣告;
原始檔:只包含函式的定義:
header1 標頭檔案 header1.h
#ifndef _header1_h
#define _header1_h
void
funca
(int);
void
funcb
(int);
#endif
header1 原始檔header1.cc
#include
#include
"header1.h"
void
funca
(int n)
void
funcb
(int n)
header2 標頭檔案 header2.h
#ifndef _header2_h
#define _header2_h
#include
#include
"header1.h"
void
funcc
(int
,int);
#endif
header2 原始檔header2.cc
#include
"header1.h"
#include
void
funcc
(int a,
int b)
header3 標頭檔案 header3.h
#ifndef _header3_h
#define _header3_h
#include
"header1.h"
void
funcd
(int a,
int b)
;#endif
header3 原始檔header3.cc
#include"header1.h"
#includevoid funcd(int a, int b)
主程式:test.cpp
#include
#include
"header1.h"
#include
"header2.h"
#include
"header3.h"
intmain()
g++
-c test.cpp
g++-c header1.cc
g++-c header2.cc
g++-c header3.cc
g++ test.o header1.o header2.o header3.o
./a.out
專案檔案中有
include. 在系統庫路徑中查詢 ***.h
include"***.h". 在當前資料夾中查詢 ***.h
若將「」 改為<> 則需要將include 新增到系統庫路徑中:
g++
-i /include -c src/header1. cc
.phony:clean
all: lib/libtest.a test.o
g++ test.o -l./lib -ltest
test.o: test.cpp
g++ -i ./include/ -c test.cpp
clean:
rm -rf a.out test.o
軟體工程 專案開發計畫
專案開發計畫 gb856t 88 主要針對開發機房收費系統的費用 時間 速度 人員組織 硬體裝置的配置 開發環境和執行環境的配置進行說明,為開發的下一步做準備。預期讀者是系統分析員和開發人員。a.待開發軟體名稱 機房收費系統 b.專案提出者 公尺新江教授 開發者 曹祥銘 使用者 廊坊師範學院全體教職...
軟體工程 專案開發計畫
專案開發計畫 gb856t 88 主要針對機房收費系統的費用,時間,速度,人員組織,硬體裝置的配置,開發環境和執行環境的配置進行說明,為開發的下一代做準備,預期讀者是系統分析人員和開發人員。a.軟體名稱 機房收費系統 b.本專案提出者 公尺新江教授 c.開發者 宋文軒 d.使用者 廊坊師範老師和學生...
建築工程專案
隨著人們生活水平的不斷提高,建築工程專案中裝飾施工技術的應用將變得更加專業化 複雜化。其中技術工藝和處理的方法也不盡相同。作為建築裝飾工程 工作人員除了應了解裝飾材料的效能以外還應能夠充分理解設計的意圖,以期達到最佳的裝飾效果。本文分析了建築裝飾施工的技術與管理。築裝飾是指建築飾面,即為了滿足人們視...