6 3 大程式結構

2021-07-27 20:20:52 字數 1437 閱讀 9700

之前我們寫的**,是放在乙個.c檔案中,如果main寫在乙個.c檔案中,max()寫在乙個.c檔案中呢?

對於專案,devcpp 的編譯會把乙個專案中的所有源**檔案都編譯後,鏈結起來

有的ide有 編譯 和 構建 兩個按鈕,編譯 是對單個源**檔案編譯,構建是對整個專案做鏈結

把函式原型 放到乙個 以.h結尾的標頭檔案中,在需要呼叫這個函式的 .c 源**檔案中 #include這個標頭檔案,編譯器在編譯的時候就知道函式的原型了

新建——源**——max.h

max.h

double

max(double a,double b);

max.c

#include "max.h"

double

max(double a,double b)

main.c

#include 

#include "max.h"

int main(void)

編譯器知道標準庫的標頭檔案在**

環境變數 和 編譯器命令列引數 也可以指令標頭檔案的目錄

#include 只是為了讓編譯器知道 printf函式的原型,保證你呼叫時給出的引數值是正確的型別

stdio.h 裡只有printf()的原型,printf的**在另外的某個 .lib(windows)或.a(unix)中

int i; // 變數的定義

extern

int i; // 變數的宣告

定義是產生**的

錯誤示例:

struct node;

// [error] redefinition of 'struct node' 重新定義 struct node

struct node;

int main(void)

標準寫法:

max.h

#ifndef _max_h_

#define _max_h_

double max(double a,double b);

extern

int gall;

struct node;

#endif

max.c

#include 

#include "max.h"

int gall = 12;

int main(void)

max.c

#include "max.h"

double

max(double a,double b)

C 程式結構

c 中的組織結構的關鍵概念是程式 program 命名空間 namespace 型別 type 成員 member 和程式集 assembly 命名空間 型別 成員 類 class 資料成員 字段 函式成員 方法,屬性,索引器,事件,運算子,構造 析構函式 介面 inte ce 函式成員 附經典理解...

c 程式結構

東南大學第5章c 程式結構 本章重點注意const static兩個關鍵字,也是企業面試中常見的面試題 一 作用域 作用域 識別符號的可見範圍 可見性 識別符號是否可以引用的問題。1,函式原型作用域 函式原型裡的形參 2,塊作用域 塊中的識別符號作用域在花括號之間 3,類作用域 類x的乙個成員m,在...

C windows程式結構

乙個簡單的windows程式主要包括應用程式主函式winmain函式和訊息處理函式,winmain函式的主要工作是定義視窗 註冊視窗 顯示視窗 訊息迴圈 訊息處理函式的主要工作是處理幹興趣的訊息。下面的示例程式顯示了乙個簡單的視窗程式的結構。例 乙個簡單的windows程式。include lres...