多文件
(1)文件的包含
- 標(biāo)準(zhǔn)庫的頭文件:
一般用<>括起來;編譯器直接去查找標(biāo)準(zhǔn)庫,找到相應(yīng)的文件
例如:
#include<stdio.h> - 自定義頭文件:一般用“”括起來;為了區(qū)分哭的頭文件,編譯器的查找路徑
為當(dāng)前工作路徑
其中可以對(duì)外部函數(shù)進(jìn)行聲明,可以包含 宏,和結(jié)構(gòu)體,頭文件以及自定義頭文件
全局變量的使用:
在1.c文件中定義的全局變量,若在其他文件中使用
(1)在其他文件中使用extern聲明該全局變量;
(2)將1.c文件包含頭文件中。
(2)多文件
便于項(xiàng)目管理,可以根據(jù)個(gè)人的需求或項(xiàng)目需求將項(xiàng)目劃分為不同的文件,有利于提高開發(fā)效率!
編譯時(shí),多文件以前進(jìn)行編譯。
可以將多個(gè)文件存放于不同的目錄中,
源文件------>src目錄
頭文件------->include目錄
可實(shí)現(xiàn)文件-------->bin文件
(6)注意事項(xiàng):
雙目運(yùn)算符
assert()函數(shù)
用于調(diào)試代碼錯(cuò)誤時(shí)使用,錯(cuò)誤處代碼會(huì)退出,
常用的宏
固有的五中預(yù)定義宏:
__DATE__進(jìn)行預(yù)處理的日期(“Mmm dd yyyy”形式的字符串文字)
__FILE__代表當(dāng)前源代碼文件的字符串文字
__LINE__代表當(dāng)親源代碼中的行號(hào)的整數(shù)常量
__TIME__源文件編輯時(shí)間,格式 “hh:mm:ss”
__func__當(dāng)前所在函數(shù)名
對(duì)于__FILE__ ___LINE__ __func__這樣的宏調(diào)試程序時(shí)是很有用的main()函數(shù)的參數(shù)
argc,參數(shù)的個(gè)數(shù);
argv[],參數(shù)數(shù)組;快速排序
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void sort(int *a,int left,int right)
{
if(left>=right)
{
return;
}
int i = left;
int j = right;
int key = a[left];
while(i < j)
{
while(i < j && a[j] <= key)
{
j--;
}
a[i] = a[j];
while(i < j && a[i] >= key)
{
i++;
}
a[j] = a[i];
}
a[i] = key;
if(i>left)
sort(a,left,i-1);
if(i<right)
sort(a,i+1,right);
}
int main()
{
int arr[20]={
0
};
srand(time(0));
int i = 0;
for(i =0;i<20;i++)
{
arr[i] = rand()%100;
}
sort(arr,0,19);
for(i = 0;i<20;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}