在单片机编程时那些unsigned int是否可以不赋初值,都默认初值是0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单片机编程时那些unsigned int是否可以不赋初值,都默认初值是0相关的知识,希望对你有一定的参考价值。

在单片机编程时那些unsigned int是不是可以不赋初值,都默认初值是0我看到了很多程序都这样,求解

在声明变量时,是可以不赋初值的,而初始值都默认为0的。如果要求初始值不是0,那就得赋初值了。当然也可以在声明时不赋初值,在程序使用变量时再赋初值也可以。
而且不只是unsigned int,只是声明变量就可以不赋初值的。
但是,在子函数中使用局部变量时,要注意赋初值,因初始值不一定是0,如果要求初值是0,就得赋初值了,也可以在使用时再赋初值。
声明是不赋初值,默认为0,这是有一段默认的程序段,完成内部RAM的清0,这要看汇编代码才能看到。这段程序,用户是看不到的。
参考技术A 可以赋值的...追问

……可以不赋的吗,我突然发现很多代码都这样,感觉都默认初值是0了一样

追答

赋值是为了程序上应用时不会变成其他不可预测的数值...

Linux c编程:怎么向文件中写入unsigned int 类型的数据?

在Linux下向文件写数据是不是一字符串的形式写入的呢?我在想文件写入unsigned int 类型的数据是打开文件是乱码,
2 #include <stdio.h>
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <fcntl.h>
6 #include <unistd.h>
7
8 int main()
9
10 int len = 0;
11 int fp = 0;
12 unsigned int list[ 121 ] = 0;
13
14 unsigned int a = 100;
15 unsigned int b = 123;
16
17 list[0] = a;
18 list[1] = b;
19
20 fp = open( "./af.txt", O_WRONLY | O_CREAT, 0222 );
21 // len = sprintf( text, "%s" , list );
22 len = sizeof(list);
23
24 write( fp, list, len );
25
26 close( fp );
27 return 0;
28
unsigned int a = 100;
unsigned int b = 123
数据可能比较大

参考技术A 直接写入
之所以乱码因为是他四个字节的
而字符是一个字节的。

你可以试试写入一个结构体 结构体的成员变量都是字符串 你写入到文本也是乱码的。原因就是如上所述
参考技术B 肯定是乱码, 文件内容能显示都是字符型。你写入后,读的时候读unsigned int 大小就可以,一样也能读出来。 参考技术C 转换成字符串写入就看到啦追问

应该怎么样转换?用 itoa好像不支持?

追答

for(i=0;i<len;i++)fprintf(fp,"%d",list[i]);

追问

还是搞不定,,能否帮帮忙写一下呢?

本回答被提问者采纳

以上是关于在单片机编程时那些unsigned int是否可以不赋初值,都默认初值是0的主要内容,如果未能解决你的问题,请参考以下文章

单片机里无符号整数int 是否必须写unsigned int 直接写int 可不可以

单片机怎么通过串口发送unsigned int类型的数据?

单片机中unsigned char 和unsigned int的区别

unsigned int k在单片机中的意思?

8位单片机中unsigned int的长度是多少?

C语言实现unsigned char 转换unsigned int?