标题:
请问大家一个关于写C语言main函数的问题
[打印本页]
作者:
gaoky
时间:
2020-3-20 22:52
标题:
请问大家一个关于写C语言main函数的问题
看到一个程序,在main函数之后是很正常的初始化,但这之前怎么又是void KeyScan();如图上红色标注的这些,这些子函数程序后面已经写了,为什么前面还要再调用#include "STC15.H"
#include "oled.h"
#include "ds18b20.h"
#define ADC_POWER 0x80 //ADC电源控制位
#define ADC_FLAG 0x10 //ADC完成标志
#define ADC_START 0x08 //ADC起始控制位
#define ADC_SPEEDLL 0x00 //540个时钟
sbit LEDG = P5^5;
sbit BUZZ = P1^3;
sbit RELAY = P3^7; //0开1关
//定义按键IO
sbit KEY1 = P3^6;
sbit KEY2 = P3^3;
sbit KEY3 = P3^2;
//按键码,为0时没有键按下
char KeyCode = 0;
//水位百分比,分0%-20%-40%-60%-80%-100%
int WaterLev = 0;
//设置的水温
int TempSet = 300;
int Flag1s = 0;
int FlagBuzz = 0;
void Timer0Init();
void KeyScan();
void KeyAction();
void STC15AdcInit(uchar ch);
void STC15AdcStart(uchar ch);
void main()
{
OledInit();
OledShowStr(32, 0, "Temp Box");
OledShowStr(0, 2, "Temperature:");
OledShowStr(0, 4, "Water Level:");
OledShowStr(24, 6, "Set Temp:");
OledShowTemp(96, 6, TempSet);
Start18B20();
STC15AdcInit(5);
STC15AdcStart(5);
Timer0Init();
作者:
xxpp2011
时间:
2020-3-20 23:12
子函数放在主函数前面,就不用再声明一遍,子函数放在主函数后面,就需要在主函数前面声明函数名。
你可以把void main()(xxx)挪到整个main.c的最后面,就可以删掉红色部分了。
作者:
csmyldl
时间:
2020-3-20 23:44
这个叫做函数声明;主要作用是帮助编译系统找到这些函数的位置;因为这些函数放在main()函数后,是由main()函数调用执行,如果不声明,main()函数不知道。另一种做法是把main()函数移至最后,就不需要这样声明了
作者:
cphnkj188
时间:
2020-3-21 08:32
#include "STC15.H"是头文件,必须有的,红色的那些是子函数,是需要提前声明的
作者:
cjjdemon
时间:
2020-3-21 15:25
C语言基础太薄弱,建议认真看一下
作者:
TTQ001
时间:
2020-3-22 01:50
你将所有子例程放在main函数后面,因此需要在main函数之前声明它们,以避免编译错误。
作者:
Zealot110
时间:
2020-3-22 18:23
但这之前怎么又是void KeyScan();如图上红色标注的这些,这些子函数程序后面已经写了,为什么前面还要再调用
---那些红色部分不是调用,是声明。按语法规则,有如下两种情况需声明:
1、若其它文件的函数要被本文件调用,需事先声明
2、若本文件内的函数想要被行号小于自己的函数调用,需要在调用之前事先声明
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1