C语言多文件编程基本格式
生活随笔
收集整理的這篇文章主要介紹了
C语言多文件编程基本格式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、背景:
用一個(gè)丟骰子的簡(jiǎn)單案例熟悉了C語(yǔ)言多文件編程該咋寫
2、格式
(1)主函數(shù)文件main.c
//文件頭part1:所有要使用的函數(shù)#include?;#include?;#include?;//文件頭part2:放所有函數(shù)原型的文件#inlucde?"main.h"//文件頭part3:各個(gè)要使用的子文件#include?"funciton1.c"#inlucde?"function2.c"int?main(){function1();???//在function1.cfunction2();???//在function2.creturn?0;}(2)乘放所有函數(shù)原型、全局變量的文件main.h
void?function1(void);void?function2(void);/* 這里有2個(gè)知識(shí)點(diǎn)或者說優(yōu)秀編程規(guī)范 1、對(duì)全局?jǐn)?shù)據(jù)使用const,防止暴露數(shù)據(jù) 2、頭文件方案可以偷懶而不使用“一個(gè)文件中定義式聲明,其他文件使用extern引用式聲明”對(duì)方案,但是必須加static。不然file1.c和file2.c都包含main.h,那么這2個(gè)文件就都有一個(gè)相同的定義式聲明,大多數(shù)編譯器不允許這么做 */static?const?int?a?=?10;static?const?double?b?=?20'(3) 放各個(gè)函數(shù)的子文件(示例:function1.c)
void?function1(void){具體函數(shù)邏輯}3、案例:丟骰子
(1)主函數(shù)
#include?#include?#include?"main.h"#include?"random.c"#include?"roll.c"/* 1、要求用戶輸入骰子數(shù)、骰子的面數(shù);輸出擲出的結(jié)果; 2、隨機(jī)數(shù)的生成種子基于time()生成真隨機(jī)數(shù) 3、支持循環(huán)輸入 4、能處理以下錯(cuò)誤情況: (1)side小于1 (2)輸入類型不匹配 (3)遇到EOF *//*偽算法: int?main(){輸入函數(shù):骰子數(shù)(報(bào)錯(cuò)處理)、面數(shù)(報(bào)錯(cuò)處理)循環(huán)(當(dāng)不報(bào)錯(cuò)的時(shí)候){丟骰子函數(shù)(骰子數(shù)、骰子的面數(shù));輸入函數(shù);} }丟骰子函數(shù)(骰子數(shù)、骰子的面數(shù)){while(<骰子數(shù)){隨機(jī)數(shù)函數(shù)(骰子的面數(shù))}數(shù)組存儲(chǔ)(所有隨機(jī)數(shù)結(jié)果);對(duì)數(shù)組求和;輸出結(jié)果(骰子數(shù)、骰子的面數(shù)、數(shù)組求和結(jié)果) }隨機(jī)數(shù)函數(shù)(骰子的面數(shù)){種子?=?(時(shí)間函數(shù)返回的某個(gè)數(shù))輸出結(jié)果?=?種子??%?骰子的面數(shù) } */int?main(){int?rolls,sides,result;//輸入函數(shù)部分printf("please?input?the?num?of?rolls?you?wanna?use:");if(scanf("%d",&rolls)?!=??1){printf("you?should?have?input?one?num.\n");};if(rolls?=?1){printf("you?use?%d?rolls?with?%d?sides,?and?your?result?is?%d\n",rolls,sides,roll(rolls,sides));printf("Another????please?input?the?num?of?rolls?you?wanna?use:");if(scanf("%d",&rolls)?!=??1){printf("you?should?have?input?one?num.\n");};if(rolls?<?1){printf("you?should?use?1?roll?at?least\n");}printf("How?many?sides?a?roll?have???");if(scanf("%d",&sides)?!=??1){printf("you?should?have?input?one?num.\n");};if(sides?<?1){printf("you?should?use?1?sides?at?least\n");}???????}//-test輸入函數(shù)return?0;}(2)main.h
//這里存放丟骰子函數(shù)的函數(shù)聲明//丟骰子函數(shù)int?roll(int?rolls,int?sides);//隨機(jī)數(shù)函數(shù)int?my_random(int?sides);(3)丟骰子函數(shù)
int?roll(int?rolls,int?sides){int?result?=?0;int?list[rolls];for(int?i?=?0;?i?<?rolls;i++){list[i]?=?my_random(sides);}for(int?i?=?0?;i?<?rolls;i++){result?+=?list[i];}return?result;}/* 丟骰子函數(shù)(骰子數(shù)、骰子的面數(shù)){while(<骰子數(shù)){隨機(jī)數(shù)函數(shù)(骰子的面數(shù))}數(shù)組存儲(chǔ)(所有隨機(jī)數(shù)結(jié)果);對(duì)數(shù)組求和;輸出結(jié)果(骰子數(shù)、骰子的面數(shù)、數(shù)組求和結(jié)果) } */(4)隨機(jī)數(shù)函數(shù)
/* 隨機(jī)數(shù)函數(shù)(骰子的面數(shù)){種子?=?(時(shí)間函數(shù)返回的某個(gè)數(shù))輸出結(jié)果?=?種子??%?骰子的面數(shù) } */int?my_random(int?sides){int?seed?=?(unsigned?int)time(0);seed?=?seed?%?sides?+?1;return?seed;}總結(jié)
以上是生活随笔為你收集整理的C语言多文件编程基本格式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小班数学教案《拼图形》反思
- 下一篇: 河套平原在哪里