日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言多文件编程基本格式

發布時間:2023/12/2 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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语言多文件编程基本格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。