C学习笔记(1)-结构体、预处理与多文件结构程序设计

简介: 一、结构体的定义与使用 #include //定义结构体(类似模板) typedef struct { char name[50]; int age; char address[100]; } nvgui; void main() { nvgui ...

一、结构体的定义与使用

#include <stdio.h>

//定义结构体(类似模板)
typedef struct
{
  char name[50];
  int age;
  char address[100];
} nvgui;

void main()
{
nvgui niexiaoqian={"聂小倩",18,"兰若寺"};

nvgui b={"千年树精",100,"大树"}; 

printf("聂小倩的信息:\n姓名:%s\n年龄:%d\n",niexiaoqian.name,niexiaoqian.age);
}

二、其它概念 

1.变量必须放在其它语句之前

2.调用函数之前需要先进行函数声明:

就是告诉编译器,这个函数已经存在,和这个函数具体是什么格式的,名称是什么,返回值是什么,数据个数和类型分别是什么,以后在用到这个函数的时候编译器就按照这个声明的格式来检查函数的使用是否正确

就是告诉编译器函数的类型,名称,使用的参数的类型。

 

3.以#开始的为预编译指令

 #include

意思原样展开

#include

带<>为系统自带的,在库文件中找

 

带“”在工程文件下找

#ifndef

(if not define) #ifndef  A如果没有定义A就执行下面的语句

#define

#define MAX_SIZE  10 定义(定义一个字符常量)程序中所有的MAX_SIZE都被10代替(可以让10这个常量更有意义)

#endif

与#ifndef配对,开始,结束

 

所有头文件必须包含下面三句话(模版):

#ifndef 头文件名_H

#define 头文件名_H

函数声明或者宏定义、全局变量、结构体类型

#endif

三、多文件结构程序设计(重点)

     大学学了一年的C都没整明白几个.c文件是怎样关联到一块的,我在一个.c文件中写了一个函数,怎么在另外一个.c文件中调用,也就是什么是多文件结构设计。下面我们一步一步实现这个多文件的调用问题:

1.咱们新建一个工程命名为myFirstC,如下图:

 

2.新建一个.c文件为main.c为程序的入口,再新建一个add.c,这里面实现一个两个数相加的小函数

3.建议一个头文件add.h,咱们先完成这个里面的代码:如下

 

#ifndef ADD_H
#define ADD_H
int add(int a,int b);
#endif

代码说明请参考上边讲的预处理的介绍。

接着实现add.c的代码

#include <stdio.h>

#include "add.h"

int add(int a,int b)
{
	printf("我是来自add.c\n");
	return a+b;
}

 这里说下为什么要引入自己的头文件,主要是因为如果存在多个相互调用的子函数,那就需要进行函数声明,这时需要引入自己的头文件就行了,如果头文件没有包含,需要补写函数声明。

 

最后就是main.c文件的实现了:

#include<stdio.h>
#include"add.h"
main()
{
	int a=5,b=6;
	printf("a+b=%d\n",add(a,b));
}

 

 编译一下,没有任何错误,运行结果为:

最后看下文件结构:

呵呵,简单吧,这就是c语言的多文件结构程序

 

 

 

 

 

目录
相关文章
|
12月前
|
C语言
关于C语言中函数的知识总结(一)---函数的功能和分类
关于C语言中函数的知识总结(一)---函数的功能和分类
|
5月前
|
C语言
【C语言基础】:文件操作详解(后篇)-2
【C语言基础】:文件操作详解(后篇)
|
5月前
|
存储 C语言
【C语言基础】:文件操作详解(后篇)-1
【C语言基础】:文件操作详解(后篇)
|
6月前
|
程序员 编译器 C语言
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(中)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
39 0
|
6月前
|
存储 程序员 编译器
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(上)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
48 0
|
6月前
|
自然语言处理 编译器 Linux
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)(下)
C语言进阶⑳(程序环境和预处理)(#define定义宏+编译+文件包含)
52 0
|
6月前
|
存储 Linux C语言
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-2
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
6月前
|
自然语言处理 Linux 编译器
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-1
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
C语言
【文件处理】C语言引用外部文件教程
【文件处理】C语言引用外部文件教程
281 0
|
C语言
C语言实验十四 结构体
C语言实验十四 结构体
50 0