C語言之include以及多文件團隊開發

一、include

include 的作用是拷貝右邊的文件的所有內容到#include所在的位置,另外對於自定義的文件應用" "包含所引用的文件,即#include" " 對於系統自帶的文件用<>,即#include<>。例如:

#include<.stdio.h>是一個系統頭文件。

#include<abc.txt>相當於把abc.txt文件中的所用內容以純文本的方式拷貝到當前位置。

#include <stdio.h>
int main()
{
    printf("哈哈哈\n");
    //#include "haha/abc.txt"
#include "/Users/apple/Desktop/iOS課堂共享/0722課堂共享/0727/代碼/include/haha/abc.txt"
    return 0;
}

解釋及注意事項

" "表示與.c文件處於同一路徑,可以使用相對路徑也可以使用絕對路徑。左邊有/的是絕對路徑,沒有/則爲相對路徑。
注意:自定義的文件使用" ",系統文件使用<>。
函數如果在調用時,函數定義在調用之後,且前面沒有進行相應的聲明,則編譯器報錯;
調用函數,沒有函數聲明,編譯器不會報錯,鏈接時報錯,不定義函數反而不報錯。
鏈接:把項目中所以相關的.o目標文件和c語言的函數庫合併在一起,生成可執行文件。
通常:
 函數的定義放在.c文件中,函數的聲明放在.h文件中
 如果要是有某個.c文件中定義的函數,只需要包含.c文件對應的.h文件即可
 .h文件生下來就是打醬油被別人拿來拷貝包含的,編譯鏈接時不用寫出

二、多文件圖團隊開發

流程及定義:

首先定義一個李四.h文件,其保存函數的聲明

/*
 李四
 編寫函數的聲明
 */
int average(int a, int b);
int sum(int a, int b);
int minus(int a, int b);
int multiply(int a, int b);
然後定義李四.c文件,保存函數體

/*
 李四
 編寫基本算數運算的函數
 */
int average(int a, int b)
{
    return (a + b)/2;
}
int sum(int a, int b)
{
    return a + b;
}
int minus(int a, int b)
{
    return a - b;
}
int multiply(int a, int b)
{
    return a * b;
}
最後定義張三.c文件,保存主函數部分

#include <stdio.h>
#include "李四.h"
int main()
{
    int score1 = 100;
    int score2 = 70;
    
    int c = average(score1, score2);
    int d = sum(score1, score2);
    
    printf("平均分是%d\n", c);
    printf("總分是%d\n", d);
    
    // \n 是一個轉義字符
    // \t tab鍵
    // \" 一個雙引號
    // printf函數返回的字符串常量的字符數,並不是字數
    // 1個漢字佔據3個字符
    int e = printf("哈h\"\ta\n");
    
    printf("e=%d\n", e);
    return 0;
}
函數的定義放.c文件,函數的聲明放.h文件
如果要使用某個.c文件中定義的函數,只需要#include這個.c文件對應的.h文件
.h文件的作用:被別人拷貝。編譯鏈接的時候不需要管.h文件
cc xx.o xxx.o 將多個目標文件鏈接在一起
cc xx.c xxx.c 將多個源文件編譯、鏈接

三、說明printf( )函數

main函數的返回值是返回給操作系統的,0爲正常退出,其他值爲非正常退出。用以進行系統日誌,其實它返回任何值對程序本身沒有影響,僅僅只是標記
Printf函數的返回值爲字符數。如printf(“abc”);則返回值爲3,若printf(“abc男\n”);的返回值爲7,因爲一箇中文佔3個字符





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章