C语言程序每一行代码的解释,急用

C语言程序每一行代码的解释,急用,第1张

#include

<stdio.h>

#define

N

4

//定义一个常量N为4

int

strcomp(char

*s1,char

*s2)

//一个int返回值的函数

{

for(*s1==*s2&&*s1&&*s2s1++,s2++)

//for循环,分号第一个可以为空,表示不进行初始化,当S1等于S2且都不为空,则停止,返回0

return(*s1-*s2)

}

void

main()

{

char

str[N][50]//定义一个4*50大小的二维字符数组,用于接受4个字符串

int

i,j

for(i=0i<Ni++)

{

printf("String

#%d:",i+1)//输出待输入的字符串编号

gets(str[i])//读取用户输入的字符串

}

for(j=0,i=1i<Ni++)

if(strcomp(str[j],str[i])>0)

j=i//比较两个字符串大小,j始终保存最大字符串的编号

printf("Min

string

is:%s\n",str[j])//输出编号

}

//用第一个不相同字符的ASCII码大小来判断两个字符串的“大小”

int

strcomp(char

*s1,char

*s2)

{

for(*s1==*s2&&*s1&&*s2s1++,s2++)//如果两个字符串当前被指针指向字符的ASCII码相同,且都不是‘\0’(即都还没结束)

就分别指向各自字符串的下一个字符

return(*s1-*s2)

//返回各自字符ASCII码值相减的结果。

}

重载输出 *** 作符 <<

为了与标准库IO *** 作一致,重载 << *** 作符函数应把ostream&作为其第一个参数,对类类型const对象的引用作为第二个参数,并返回对ostream形参的引用。

一般而言,“<<”应输出对象的内容,进行最小限度的格式化,尤其不应输出换行符,而让用户自己控制输出细节。

“<<” *** 作符应定义为非成员函数。因为对于类的成员函数,左 *** 作数为该类类型的对象,这样只能将第二个参数作为ostream&,使用时:

这与“<<”的正常使用习惯相反。所以“<<” *** 作符应定义为非成员函数,并将其作为所 *** 作类的友元。

其实简单的理解,你就把cout当做dos窗口,<<就表示把后面的内容输出到窗口中,其中引号内的内容直接输出,不带引号的是输出变量的值,最后的是换行符。

包含一个头文件(头文件里面提供有一些可以直接使用的东西,比如函数方法,)。

把uchar定义为 unsigned char 型变量的简称,目的是方便打代码少写几个英文。

注释(做一些代码的注解,不被编译)

定义一个叫redLED的常量,它的值为PORTC.0。这方便在写代码的时候辨识是哪个灯,这就不用去记忆PORTC.0对应的LED灯是红灯。

同上

main函数,就是主函数。这是整个程序的入口点。程序运行的时候,就是从这个函数开始的。

DDRC(应该是寄存器)置位为0xff。

同上

同上

同上

死循环(不断反复执行while{}里面的语句,除非整个程序停止或者用break关键字跳出,否则永远循环执行下去)。

这是个判断。PIND&0x01,把PIND跟0x01相与,当PIND=1,这个式子结果就是1,if里的值为真,执行下面花括号里的语句;而如果PIND为0,这个式子结果就是0,if里的值为假,执行else下面的语句。

redLED 置1,给这个对应的引脚输出一个高电平,把灯点亮(或者熄灭,我没学过你们的这个单片机,不知道 置1 会是什么结果)。

redLED 置1,给这个对应的引脚输出一个低电平。同上。

如果PIND&0X01的结果为0时,执行下面{}中的语句。

同13、14。

同13、14。

以上内容为大概解析,本人没有使用过这款单片机,所以有一些具体的内容可能我无法准确描述(比如寄存器与io口的配置)。仅供参考,欢迎纠正。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12019756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存