C语言多文件编程基本格式
生活随笔
收集整理的這篇文章主要介紹了
C语言多文件编程基本格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、背景:
用一個丟骰子的簡單案例熟悉了C語言多文件編程該咋寫
2、格式
(1)主函數文件main.c
//文件頭part1:所有要使用的函數#include?;#include?;#include?;//文件頭part2:放所有函數原型的文件#inlucde?"main.h"//文件頭part3:各個要使用的子文件#include?"funciton1.c"#inlucde?"function2.c"int?main(){function1();???//在function1.cfunction2();???//在function2.creturn?0;}(2)乘放所有函數原型、全局變量的文件main.h
void?function1(void);void?function2(void);/* 這里有2個知識點或者說優秀編程規范 1、對全局數據使用const,防止暴露數據 2、頭文件方案可以偷懶而不使用“一個文件中定義式聲明,其他文件使用extern引用式聲明”對方案,但是必須加static。不然file1.c和file2.c都包含main.h,那么這2個文件就都有一個相同的定義式聲明,大多數編譯器不允許這么做 */static?const?int?a?=?10;static?const?double?b?=?20'(3) 放各個函數的子文件(示例:function1.c)
void?function1(void){具體函數邏輯}3、案例:丟骰子
(1)主函數
#include?#include?#include?"main.h"#include?"random.c"#include?"roll.c"/* 1、要求用戶輸入骰子數、骰子的面數;輸出擲出的結果; 2、隨機數的生成種子基于time()生成真隨機數 3、支持循環輸入 4、能處理以下錯誤情況: (1)side小于1 (2)輸入類型不匹配 (3)遇到EOF *//*偽算法: int?main(){輸入函數:骰子數(報錯處理)、面數(報錯處理)循環(當不報錯的時候){丟骰子函數(骰子數、骰子的面數);輸入函數;} }丟骰子函數(骰子數、骰子的面數){while(<骰子數){隨機數函數(骰子的面數)}數組存儲(所有隨機數結果);對數組求和;輸出結果(骰子數、骰子的面數、數組求和結果) }隨機數函數(骰子的面數){種子?=?(時間函數返回的某個數)輸出結果?=?種子??%?骰子的面數 } */int?main(){int?rolls,sides,result;//輸入函數部分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輸入函數return?0;}(2)main.h
//這里存放丟骰子函數的函數聲明//丟骰子函數int?roll(int?rolls,int?sides);//隨機數函數int?my_random(int?sides);(3)丟骰子函數
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;}/* 丟骰子函數(骰子數、骰子的面數){while(<骰子數){隨機數函數(骰子的面數)}數組存儲(所有隨機數結果);對數組求和;輸出結果(骰子數、骰子的面數、數組求和結果) } */(4)隨機數函數
/* 隨機數函數(骰子的面數){種子?=?(時間函數返回的某個數)輸出結果?=?種子??%?骰子的面數 } */int?my_random(int?sides){int?seed?=?(unsigned?int)time(0);seed?=?seed?%?sides?+?1;return?seed;}總結
以上是生活随笔為你收集整理的C语言多文件编程基本格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小班数学教案《拼图形》反思
- 下一篇: C语言*运算符和运算符