范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

分享一个简单但实用的程序模板,用于收集C语言知识点

  前言
  分享一个我初学C语言的时候的用于测试C语言知识点的一个小模板。
  好记性不如烂笔头,我们平时学习也应该多做一些记录,多整理自己所学的知识,以便之后有必要的时候可以回顾。
  以前我刚开始学习C语言的时候经常需要验证一些比较模糊的知识点,或则想要验证一些函数时,所以我每次都会建一个 test.c 文件,然后在这个文件里写我的测试代码,测试完毕后常常会删掉该文件。
  下次再遇到同样的问题的时候,可能又是记不清楚了,常常又需要测试一遍,这是件很浪费时间的事情。
  所以,我们可以编写一个专门用于测试的程序:(1)有菜单,可以通过菜单选择想要测试的函数;(2)有功能函数,把一些需要测试的功能封装成一个函数;(3)有测试函数,用于测试功能函数及一些知识点。
  该测试程序大致如下:
  我们只要输入菜单前面的数字就可以进行对应的测试啦。挺方便的,日积月累,渐渐的,就可以积累很多知识点。如:
  该测试程序代码模板1、菜单函数如下:
  2、主函数如下:
  3、该测试程序函数声明部分如下
  完整程序 /*----------------------------------------------------------------------------------------  微信公众号:嵌入式大杂烩 ----------------------------------------------------------------------------------------*/  #include  #include  #include  #include   // 功能函数声明 void exchange(int *a, int *b);  // 交换a,b的值最好的方法  // 测试函数声明 void test1(void);  // 测试函数1:交换a,b的值 void test2(void);  // 测试函数2:C语言预定义宏 void test3(void);  // 测试函数3:C89与C99标准的区别 void test4(void);  // 测试函数4:输出当前编译器数据类型范围  // 菜单 int menu(void);  /*=============================================================================                主函数 ==============================================================================*/ int main(void) {  int cmd = 0;    for (;;)      // 死循环,等价于while(1)  {    cmd = menu(); // 读取用户输入的指令    switch (cmd)    {      case 1 : test1();     break;  // 测试函数1:交换a,b的值      case 2 : test2();     break;  // 测试函数2:C语言预定义宏      case 3 : test3();     break;  // 测试函数3:C89与C99标准的区别      case 4 : test4();     break;  // 测试函数4:输出当前编译器数据类型范围      case -1: exit(0);      break;  // 退出程序      case -2: system("cls"); break;  // 清空屏幕      default:break;    }  }    return 0; }  /*=============================================================================                以下是功能函数实体 ==============================================================================*/ /* 交换a,b的值 */ void exchange(int *a, int *b) {  *a = *a^*b;  *b = *a^*b;  *a = *a^*b; }  /*=============================================================================                以下是测试函数实体 ==============================================================================*/ /* 交换a,b的值 */ void test1(void) {  system("cls");  int a = 13, b = 14;  printf("交换之前a = %d, b = %d ", a, b);  exchange(&a, &b);  printf("交换之后a = %d, b = %d ", a, b); }  /* C语言预定义宏 */ void test2(void) {  system("cls");  printf("当前代码行号:%d ", __LINE__);  printf("当前编译日期:%s ", __DATE__);  printf("当前编译时间:%s ", __TIME__);  printf("当前文件名称:%s ", __FILE__);  printf("当前函数名称:%s ", __FUNCTION__); }  /* C89与C99标准的区别 */ void test3(void) {  int i;  system("cls");  // C99允许在for循环内定义循环变量,而C89不允许  // gcc -std=c99 test.c -o test.exe  // for (int i = 0; i < 5; i++)    for (i = 0; i < 5; i++)  {    printf("hello world! ");  } }  /* 输出当前编译器数据类型范围 */ void test4(void) {  system("cls");  printf("char的范围为: %d —— %d ", CHAR_MIN, CHAR_MAX);  printf("unsigned char的范围为: %u —— %u  ", 0, UCHAR_MAX);    printf("short的范围为: %hd —— %hd ", SHRT_MIN, SHRT_MAX);  printf("unsigned short的范围为: %hu —— %hu  ", 0, USHRT_MAX);    printf("int的范围为: %d —— %d ", INT_MIN, INT_MAX);  printf("unsigned int的范围为: %u —— %u  ", 0, UINT_MAX);    printf("long的范围为: %ld —— %ld ", LONG_MIN, LONG_MAX);  printf("unsigned long的范围为: %lu —— %lu  ", 0, ULONG_MAX);    printf("long long的范围为: %lld —— %lld ", LLONG_MIN, LLONG_MAX);  printf("unsigned long long的范围为: %llu —— %llu  ", 0, ULLONG_MAX); }  /*=============================================================================                以下是菜单函数 ==============================================================================*/ int menu(void) {  int cmd = 0;  char buf[10] = {0};    // 菜单信息输出  printf("=============================菜单============================== ");  printf("[01]测试:交换a,b的值 ");  printf("[02]测试:C语言预定义宏 ");  printf("[03]测试:C89与C99标准的区别 ");  printf("[04]测试:输出当前编译器数据类型范围 ");  printf("[-1]退出 ");  printf("[-2]清屏 ");  printf("=============================================================== ");  do{    printf("请输入您的选择:");    gets(buf);    cmd = atoi(buf);  }while (cmd < 1 && cmd > 4);    return cmd; }
  每当需要测试一些知识点时,就可以按照这样子的格式在后边添加,可以很好地进行积累。
  往期好文:
  C语言、嵌入式中一些非常实用的宏技巧
  C语言、嵌入式重点知识:回调函数
  分享一个有趣的库,让你学习C语言不会觉得那么枯燥
  我整理了一个嵌入式资料库,大家有什么好资料分享?可以给我留言,我把它加进去,资源共享,一起来完善这个资料库!

小米12Ultra曝光,2亿主摄副屏骁龙898,最强旗舰要来了自小米11系列开始,小米真正在旗舰手机市场站稳了脚跟,尤其是小米11Ultra,采用全新的副屏设计,这在整个手机市场还是第一次,表现非常优秀,可以使用后置镜头进行自拍,VivoX7新能源车一年贬值10万,理想蔚来二手电车无人问津对于现在国内汽车市场最为火爆的车型,新能源汽车来说,虽然它的销量一直都是水涨船高的状态,特别是因为现在芯片紧缺的原因,就是很多新能源汽车交车变得非常的紧张。可以说从它的销量状态上面燃烧卡路里新发现每个生命阶段都有开关美国纽约时报网站近日发表撰稿人金廷利的一篇文章,题为关于我们如何燃烧卡路里的新知识,全文摘编如下人们经常告诉我们一个简单的道理要保持健康的体重,只需确保摄入的卡路里量与消耗的卡路里阿里百度入股飞腾信息该企业信息先后变更104次大众网海报新闻记者于明效上海报道天眼查App显示,近日,飞腾信息技术有限公司发生工商变更,股东新增杭州阿里巴巴创业投资管理有限公司中国互联网投资基金(有限合伙)百度关联公司达孜县百外卖平台认劳率1用人单位隐形,骑手变个体户文观察者网张照栋现如今,外卖平台究竟为骑手承担了多少责任?认劳率1。这是北京致诚农民工法律援助与研究中心对1907份有效判决进行研究后得出的数字。也就是说,在外卖平台将骑手配送业务巅峰时期的诺基亚,和现在的苹果谁更牛?应邀回答本行业问题。严格的来说,诺基亚和苹果是两个不同领域的公司,放在一起对比并不是那么合适。诺基亚是一家通信业(CT)公司,而苹果是跨界而来的计算机业(IT)公司。诺基亚的最辉煌武汉大数据培训就业前景如何?就业薪资是多少?谈起IT互联网行业,很多人第一时间想到的就是IT行业的薪资待遇,也正是IT行业的高薪资待遇吸引了一批又一批年轻人参加IT培训。就当前的就业形势和就业薪资水平,以Java培训就业来进承接淘宝京东抖音快手售前售后金牌客服外包服务托管公司简介咏客客服中心于2014年创立,经历7年发展历程目前团队成员1000,服务国内一线品牌30多家,淘宝天猫拼多多店铺合作总量超过40000家,2018年合作店铺GMV超6亿,旗手机微信安全吗?前不久我发文手机安全问题。手机我拿去本品牌售后服务店,结果有四次外来设备登陆。我希望腾讯联通移动各通讯运营业能够重视自己的企业形象,真正的做到服务广大人民群众。现在这三大企业都存在本土品牌纷纷退场中国智能手机已占越南50市场份额据越南快报网站近日报道,知名市场调研机构康特波因特研究公司(CounterpointResearch)发布的数据显示,随着越南本土手机品牌Vinsmart不久前停产,中国智能手机在5G边缘计算如何进行融合发展?2016美国韦恩州立大学施巍松教授给出了边缘计算的一般性的定义边缘计算是指在网络边缘执行计算的一种新型计算模型,边缘计算操作的对象包括来自于云服务的下行数据和来自于万物互联服务的上
克莱因蓝诠释美学新高度,vivoS10Pro绮光焕彩上手体验手机作为当代人的随身物品,其外观设计已经成为个性展示的一种方式。在手机功能难以出现颠覆性改变的情况下,手机厂商纷纷对配色下了一番心思。在目前的手机市场中,渐变是一种主流,在不同角度东风打造的新款代步小车,外观很时尚可爱,五门四座,47匹马力在工信部最新347批新车申报目录中,奇瑞全新的QQ冰淇淋无疑是此次申报的电动车型中最受关注的,首先它在名字上重回经典,其次就是新车对标的将会是月销3万辆级的五菱宏光MINI,或者中iPhone13真机全曝光!还有一大波苹果新品下月就来作者HENG来源极果编辑部如果你这时候想换手机,估计会挑花眼。刚刚过去的半个月,新机可是扎堆发布虽迟但到的华为P50圆梦全面屏的小米MIX4设计很mate的荣耀Magic3没有宋大顶配8499起售!ROG5s系列正式发布,联合鹅厂底层调教游戏华硕ROG5s系列手机发布,骁龙888Plus加持问鼎最强游戏手机,相比上半年ROG5手机在屏幕性能散热综合配置方面均有显著升级。ROG5s正面搭载6。78英寸OLED屏幕,144官宣ThinkPadP1隐士2021系列首款16英寸移动图站本文转自IT之家作者姜戈联想今日官宣ThinkPadP1隐士2021,该机为ThinkPad首款16英寸移动图站,拥有100AdobeRGB色域,最高支持4K屏幕。IT之家了解到,iPhone13系列将于下月发布,价格基本确认,网友买不起最近新品手机市场十分的热闹,各大厂商新机是一款接着一款亮相,一时间许多小伙伴也是有些眼花缭乱,与此同时在多方媒体的不断披露之下,一些即将发布的重磅新机消息同样是层出不穷,比如iPh离线同声翻译机推荐讯飞双屏翻译机多种翻译方式,功能更丰富没有网络翻译机无法使用?对方说的语言翻译机不支持翻译?图片或者文档中的外语翻译机无法识别?在实际外语交流的场景中,除了听不懂内容跟不上语速,我们还经常会遇到以上这些情况。为了帮助用行业每日要闻0819无人驾驶汽车安全吗?你敢坐吗?1。零跑汽车宣布完成45亿元融资,杭州国资参与投资2。小鹏汽车肇庆二期项目动工,整车年产能将扩至20万辆3。百度发布Apollo汽车机器人和无人车出行平台萝卜快跑4。莆田交警通报蔚华为释放大招,鸿蒙生态迎来重磅升级,万物互联未来可期尽管智能手机终端业务被迫停滞,但是华为可以将很多的精力和工作重心转移到软件方面,也就是鸿蒙生态建设。作为自研操作系统,HarmonyOS是华为实现万物互联的核心支撑,意义不同凡响。aigo国民好物USSD固态U盘U393初体验实力看得见说到U盘,相信大家并不陌生,它是办公族的标配。是存储备份资料出差办公的好助手。现如今由于技术的进步和大数据时代的到来,普通U盘储存容量小传输速度慢越发满足不了大家的需求,很多用户因卢伟冰暗讽荣耀Magic3被网友抓包,这次说得有点过分了我们都知道,在华为没有遭到打压之前,虽然小米一直想把自己和华为放在一起对标,但华为几乎没有把小米放在眼里,默认的对手只有三星苹果。但华为也不是没有意识到发展迅速的小米所带来的威胁,