一,定義:
1,作用:
告訴編譯器有一個函數叫什麼,參數是什麼,返回類型是什麼,但具體是不是存在,函數聲明決定不了。(函數定義決定)
2,用法:
當你在編寫代碼時,將自定義的函數放在了調用後面,如下圖:
編譯器是從上往下運行,它在調用之前找不到自定義的函數,就會報錯,這個時候就需要在調用函數之前聲明一下,如下:
3,另一種用法:
這個是今天比較想記的,本人是在跟着鵬哥C語言學習的萌新,在編寫這節課的代碼時明明每個代碼都與老師的一模一樣,但是卻運行不了,於是去問了文心一言,AI給出的修正方法並沒有用,着實讓我疑惑了好一會兒,這個一會兒説,先講一下這種用法:
函數的聲明一般要放在頭文件中。
意思是將自定義函數寫在一個文件名為add.c的文件中,函數聲明寫在一個文件名為add.h的文件中,主函數寫在一個text.c(自定義)的文件名中,當使用此自定義函數時,只需要在text.c的頭文件中包含一下。
首先,展示老師的代碼:(調用自定義代碼時用""引用)
但是我的電腦並未成功運行,詢問文心一言後,文心一言給出的代碼如下:
text.c中的代碼是:
#include <stdio.h>
#include "add.h" // 確保add.h中聲明瞭Add函數int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int sum = Add(a, b);
printf("%d\n", sum);
return 0;
}
add.h中的代碼是:
#ifndef ADD_H
#define ADD_Hint Add(int x, int y);
#endif
add.c中的代碼是:
#include "add.h"
int Add(int x, int y) {
return x + y;
}
我將其複製並覆蓋了原代碼,但是還是運行不了,於是我試着將#include "add.h"改為#include "add.c"發現可以運行了,如下:
我又試着將add.h刪除後再次運行,如下
發現依舊可以,不知道為什麼運行不了老師的代碼,或許是軟件的更新,或許是代碼的更新,又或許是我的C語言環境配置的與老師不同,還是有問題?希望在能在後面的學習中對C語言有更深的理解,可以解答這個疑問。