C語(yǔ)言學(xué)習(xí)-自定義頭文件和實(shí)現(xiàn)頭文件以及數(shù)組

目的

1.學(xué)會(huì)自定義頭文件和實(shí)現(xiàn)頭文件
2.學(xué)會(huì)定義數(shù)組及應(yīng)用

技術(shù)

1.定義頭文件和實(shí)現(xiàn)
2.數(shù)組的應(yīng)用

技術(shù)的應(yīng)用

1.定義頭文件和實(shí)現(xiàn)文件

上一篇提到的用函數(shù)實(shí)現(xiàn)ATM機(jī)的功能
我們可以自定義頭文件,將函數(shù)的聲明和實(shí)現(xiàn)分離開(kāi)來(lái)。讓整個(gè)程序看起來(lái)更加清晰明了簡(jiǎn)潔
自定義頭文件.h 實(shí)現(xiàn)頭文件.c
.h函數(shù)的聲明 變量的聲明(不能賦值)
.c具體實(shí)現(xiàn) 實(shí)現(xiàn)函數(shù)的功能 操作變量

封裝:封裝某些功能,便于移植(方便下次使用)

自定義步驟
1.創(chuàng)建.h文件
聲明函數(shù)\暴露接口給外部使用
2.創(chuàng)建.c文件
函數(shù)的具體實(shí)現(xiàn)
3.在.c文件里面導(dǎo)入.h文件
相當(dāng)于在.c文件里面有函數(shù)的聲明和實(shí)現(xiàn)
4.在使用的地方導(dǎo)入.h文件就可以了
注意:1.盡量讓對(duì)應(yīng)的.h和.c文件名相同
2.頭文件相互引用可能會(huì)出錯(cuò)
解決辦法:使用宏定義
#ifndef
#define
代碼塊
#endif

宏定義:1.給特定的數(shù)值一個(gè)特定的意義
2.便于管理
ex:#define wechat 1;
#define qq 2;

舉一個(gè)簡(jiǎn)單的例子
首先我們創(chuàng)建一個(gè).h文件

//函數(shù)聲明 暴露給外部使用
//登陸
void login_ATM(void);

然后再創(chuàng)建一個(gè).c文件(注意.c文件的名字盡量和.h相同)

#include "ATMoperation.h"
#include "stdafx.h"
#include "iostream"

//函數(shù)具體實(shí)現(xiàn)  還有私有的東西
void login_ATM(void){
    printf("登陸\n");
    system("pause");
}

由代碼可以看到我們是要實(shí)現(xiàn)程序運(yùn)行后,顯示登陸兩個(gè)字的功能

于是在主函數(shù)當(dāng)中

#include "stdafx.h"
#include "iostream"
#include "ATMoperation.h"

void login_ATM(void);

int _tmain(int argc, _TCHAR* argv[])
{
    login_ATM();
    system("pause");
    return 0;
}
2.數(shù)組的應(yīng)用

數(shù)組:需要存儲(chǔ)多個(gè)同種類(lèi)型的數(shù)據(jù)
1.能夠存儲(chǔ)數(shù)據(jù) 就必須要有內(nèi)存
2.如何定義一個(gè)數(shù)組的同時(shí)為他分配內(nèi)存空間
3.數(shù)組定義必須明確知道數(shù)組的大小
a.初始化幾個(gè)就是幾個(gè)

    float score[] = {1,2,3};

b.在定義時(shí)明確指定數(shù)組的大小

 int temp[5] = {};

c.明確指定大小 并且初始化部分?jǐn)?shù)據(jù)

int temp2[5] = {1,2};

4.數(shù)組的名字就是數(shù)組的首地址(第一個(gè)元素的地址)

如何使用數(shù)組
1.訪問(wèn) 通過(guò)下標(biāo)來(lái)訪問(wèn) 0 - n-1

printf("%d\n", temp2[0]);

2.賦值

temp2[0] = 9;

數(shù)組的簡(jiǎn)單運(yùn)用

題目1:計(jì)算1.2.3.4.5.....100的和

int a[100] = {};
int temp = 0;

for (int i = 0; i < 100; i++)
{
    a[i] = i + 1;
    temp = temp + a[i];
}

printf("1到100的和為:%d", temp);

題目2:輸入一個(gè)數(shù)字,計(jì)算出它的二進(jìn)制數(shù)

#include "stdafx.h"
#include "iostream"

int _tmain(int argc, _TCHAR* argv[])
{
int num;

printf("輸入一個(gè)數(shù)字:");
scanf("%d", &num);
int temp = num;
//二進(jìn)制

int rem[100] = {};
int i = 0;
while (temp > 0)
{
    rem[i] = temp % 2;
    temp = temp / 2;
    i++;
    
}

for ( int j = i-1;j >= 0; j--)
{
    printf(" %d", rem[j]);
}

system("pause");
return 0;
}

心得

自定義頭文件一開(kāi)始聽(tīng)的時(shí)候感覺(jué)特別麻煩,但是仔細(xì)回想,就會(huì)發(fā)現(xiàn)只要邏輯理順了,道理自然就懂了。還有數(shù)組的運(yùn)用,不是很難,但是在使用數(shù)組的時(shí)候一定要仔細(xì)一點(diǎn),少犯一些粗心的錯(cuò)誤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容