之前我們寫的**,是放在乙個.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...