1、C工程的组成

c程序是由一个或者多个.c文件和.h文件组成的。

其中 .c文件是c源代码文件,是程序具体实现的部分。.h文件时C的头文件,用来声明.c文件中函数的。也可以申明自定义的数据。如下图,我定义了一个宏:#define kAD_MAX_DIM 5。这样包括这样头文件的c程序里面kAD_MAX_DIM的值都是等于5的。图二是我定义的函数:

void conv2d3(kad_node_t_i* input,kad_node_t* w, kad_node_t* output,int kernel_DSP,int taskid);

在这个文件中我申明了函数名:conv2d3。函数的返回数据的类型,我这里返回的是void,表示没有数据返回,可以返回的数据类型可以是:int char float double等,你也可以是自定义数据如我图一定义了数据"dfloat",

其申明格式为:dfloat 函数名(参数数据类型 参数名;……);

图一

图二

2 .c源代码文件组成

(1)预处理命令。以“#”开头

a: #include

文件包含命令 如 #include(这是C语言中常用的头文件,标准输入输出头文件),又如#include ”conv.h”;这也是文件包含命令。#include<.h>这个是检索头文件是去系统标准的头文件路径所在的文件目录下找(如:/include , /usr/include,,),而#include“.h文件名”是在先在工程当前路径下搜索,然后再到标准路径下去找,比如,我这个包含#include ”conv.h”的.c文件所在的目录下,有一个conv.h文件,这系统就会将该文件里面的内容加载到.c文件里面去。如果没有一个conv.h文件,则会去系统标准的头文件路径所在的文件目录下找,找到了就会加载,没找到,编译器就会报错。

b: 宏定义

#define PI 3.14 //不带参数的宏

#define MAX(a,b) a > b ? a : b //带参数的宏

宏仅作"替换"作用

比如定义了这样的宏,#define MAX(a,b) a > b ? a : b ,你在程序中使用MAX(3+5,6+8)时,编译器就会帮你把它替换为:m= 3+5 > 6+8? 3+5 :6 +8;这是替你简便代码的方案,也是对你写代码的方便,比如程序中很多用到了这个宏:#define PI 3.14,这样你只需要在定义宏的那里修改就会,而不会去程序使用的每个地方去修改。

#define DEBUG //仅定义一个符号DEBUG

c:条件编译

#if DEBUG

#endif

#if defined(DEBUG)

#else

#endif

这个大家可以尝试尝试,这里不多解释,因为看代码就很明显了。

3:全局声明

"声明" :C语言中声明就是把一个名字(C标识符)与某个C语言对象相关联(对象:可以是变量,函数,或类型)。

变量声明 如int a;这样我就定义了一个整形数据,名字叫a

函数声明 如 int add(int a,int b);这样我就定义了一个函数,名字叫 add,他的返回值是int 型,即整形数据,他有两个参数需要传入,准确说两个整形参数传入。

类型声明 定义一种新的数据类型。上面图有,dfloat。

全局什么和局部申明,开始这样理解吧。c程序中有{}这个大括号,如下图,这样的申明,申明的作用空间为申明到函数后半部分,即“}”之前,如果申明没在“{ }”之间,这可以理解为本文件的全局变量。可以网上检索下全局变量和局部变量。

4:函数,function,功能。

C语言的函数就是一个功能模块,是指令序列的集合。

一个程序(可以由多个文件组成)可以有多个函数,

但有且仅有一个main函数, main由执行这个程序的操作系统

来调用,那么main函数执行完了,你的程序就执行完了。

函数首部(函数的名字,函数的返回类型,输入参数)

函数体: 函数功能的具体实现

声明部分(局部声明:变量声明,函数声明,类型声明)

语句部分("语句":C语言指令)

例子:

5:C语句(C指令)

(1)控制语句:完成一定的控制功能

如:if/else、for/while/do while、continue、break、switch、goto、return

(2) 函数调用语句

如:sum_x(3,4);

(3)表达式语句

由一个表达式加一个分号构成一个表达式语句:a = 5;

(4) 空语句: 只有一个分号的语句

如:;

(5)复合语句:用一对{}括起来的语句

6:.h文件的组成

C语言头文件是一个接口文件,该文件的内容一般相应的C文件要导出的接口部分的内容(函数的声明;类型的声明;全局变量的声明)

如:

7:.C程序设计结构

(1)顺序结构

(2)选择结构(分支结构)

(3)循环结构

举报/反馈

dim c语言,编程基础-C程序的组成相关推荐

  1. 数据库笔记09:Transact-SQL语言编程基础

    /*********************************  第九单元 Transact-SQL语言编程基础 ***********************************/ /* ...

  2. c语言从键盘输入千米数,第二章 C语言编程基础.ppt

    第二章 C语言编程基础 习题2 P51-7.8.13.14.16 2.4.8break 语句和continue语句 [例2.19] 输出100 - 200 之间不能被3整除的数. P44 2.4.9循 ...

  3. c语言职专试题及答案,中等职业学校计算机应用专业c语言编程基础科试卷及答案.doc...

    中等职业学校计算机应用专业c语言编程基础科试卷及答案.doc 中等职业学校计算机应用专业C语言编程基础科试卷及答案一.填空(共35分)1.Unix系统诞生于 年,是由 实验室的K和用汇编语言开发成功的 ...

  4. C语言对p1口取反,单片机c语言编程基础(5页)-原创力文档

    单片机的外部结构: 1. DIP40双列直插: 2. P0,P1,P2,P3四个8位准双向I/O引脚:(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20): ...

  5. Linux——Linux C语言编程基础知识

    源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 通常在gcc后跟一些选项和文件名来使用gcc编译器.gcc 命令的基本用法如下:: gcc [option ...

  6. 嵌入式C语言编程课件,嵌入式系统C语言编程基础PPT课件

    <嵌入式系统C语言编程基础PPT课件>由会员分享,可在线阅读,更多相关<嵌入式系统C语言编程基础PPT课件(81页珍藏版)>请在人人文库网上搜索. 1.嵌入式系统C语言编程基础 ...

  7. 51单片机c语言程序控制,51单片机C语言编程基础及实例.pdf

    基础知识: 51 单片机编程基础 第一节:单数码管按键显示 第二节:双数码管可调秒表 第三节:十字路口交通灯 第四节:数码管驱动 第五节:键盘驱动 第六节:低频频率计 第七节:电子表 第八节:串行口应 ...

  8. 【R语言编程基础】【课后习题答案】【全】

    文章目录 第1章 R语言概述 1.选择题 2.操作题 第2章 数据对象与数据读写 1.选择题 2.操作题 第3章 数据集基本处理 1.选择题 2.操作题 第4章 函数与控制流 1.选择题 2.操作题 ...

  9. c语言编程基础第四版电子教案,《C语言编程基础》电子教案.doc

    <C语言编程基础>电子教案 课题(内容)1.1 C语言简史及特点课时1教学任务分析教学目标知识技能通过本节课的教学,使学生了解并熟悉编程语言C的发展历史.特点及其种类和适用范围.过程与方法 ...

  10. c语言编程基础 教案,C语言编程基础电子教案.doc

    C语言编程基础电子教案 课题(内容)1.1 C语言简史及特点课时1教学任务分析教学目标知识技能通过本节课的教学,使学生了解并熟悉编程语言C的发展历史.特点及其种类和适用范围.过程与方法通过C语言的发展 ...

最新文章

  1. 用好 Git 和 SVN,轻松驾驭版本管理
  2. vs2012无法启动已配置的开发Web服务器
  3. CF#1288A Deadline (函数求最值问题)
  4. shell sort result to self
  5. 一款基于jQuery的图片分组切换焦点图插件
  6. linux atoi,atoi()的替代办法
  7. NETBIOS/NETBEUI 协议 SAMBA
  8. 如何下载spring sts
  9. lwip-2.1.3在STM32F103ZE+ENC28J60有线网卡上无操作系统移植(使用STM32 HAL库)
  10. 天力卓越消息服务器是什么意思,开票版药易通出现RPC服务器不可用是什么问 – 手机爱问...
  11. VUE面试题-2022
  12. Oracle 11g重要特性
  13. python opcua使用教程
  14. 维视智造斩获2022年度光能杯最具影响力“智造”企业奖
  15. springboot整合Hystrix 熔断器
  16. C语言输入三个数字判断大小
  17. STG游戏中瞄具的基本原理
  18. android 手电筒服务,Android上实现手电筒功能
  19. Android 高仿猎豹cm桌面,所有应用,快捷字母栏
  20. COMTRADE格式录波数据分析以及函数实现(一)

热门文章

  1. 广西搬迁贫困人口近70万 “土瑶”深度贫困地区脱贫显成效
  2. js使用微信分享功能
  3. 2020网赚模式不再亮眼,中小开发者如何在红海竞争中活下去?
  4. 将m个相同的球全部放到n个相同的盒子里面有几种放法,盒子不能为空
  5. android卡在开机画面,请教:用迅为4412开发板开机时卡在Android静止画面
  6. 干货 :送你一份使用k近邻算法实现回归的实用指南(附代码、链接)
  7. 树莓派 Raspberry Pi Pico windows7 串口驱动
  8. Pytorch—模型微调(fine-tune)
  9. OCCT v11.0.16 x64 电脑硬件检测烤鸡软件中文
  10. Unity制作卡牌游戏