
C语言
healeryou
需完善
展开
-
关于C语言中结构体对齐问题
嵌入式C语言之struct内存分配(对齐) 为了提高CPU的存储速度,对一些变量的起始地址做了“对齐”处理。在默认情况下,规定各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。同时为了确保结构的大小为结构的字节边界数(即该结构中占用最大空间的类型所占用的字节数)的倍数,所以在为最后一个成员变量申请空间后,还会根据需要自动填充空缺的字节。#pragma pa原创 2017-08-12 22:58:00 · 391 阅读 · 0 评论 -
关于C语言数量类型的转换
今天做了几题关于C语言数据类型转换的题目,感觉自己是懂非懂,于是决定在研究研究。首先,C语言数据类型的自动转换遵循以下规则(这是经常用到的,还有其他规则这里没有写齐全,可自行百度):若参与运算量的类型不同,则先转换成同一类型(更高的),然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 a. 若两种类型原创 2017-08-09 12:58:02 · 727 阅读 · 1 评论 -
关于C语言中*与++的组合问题解析
后缀++假如需要将一个值存入一个数组元素中,然后再前进到下一个元素,那么利用数组下标可以这样写:data[i++]=j;如果pData指向数组元素,那么相应的语句为:*pData++=j;因为后缀++的优先级高于*,所以编译器将上述语句看成是:*(dData)=;pData++的值是pDdata,因为使用后缀++,所以pData只有在表达式计算出来后才可以自增,那么*(pData++)的值为*pDa原创 2017-06-08 21:52:55 · 3023 阅读 · 0 评论 -
linux网络编程(2)
关于套接字(socket)的理解不同计算机(通过网络相连)上运行的进程相互通信机制称为网络进程间通信(network IPC)。 在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)构成套原创 2017-06-01 21:35:59 · 489 阅读 · 0 评论 -
linux线程学习(5)
线程的高级属性1. 一次性初始化:有些事需要且只能执行一次(比如互斥量初始化)。因此有了使用一次初始(pthread_once_t);首先要定义一个pthread_once_t变量,这个变量要用宏PTHREAD_ONCE_INIT初始化。然后创建一个与控制变量相关的初始化函数pthread_once_t once_control = PTHREAD_ONCE_INIT;接下来就可以在任何时刻调原创 2017-05-18 19:30:19 · 265 阅读 · 0 评论 -
关于学习getchar()和scanf()时问题
一、getchar()函数:getchar()函数的原型为 int getchar(void):该函数不带形参,返回值为int型,成功时,返回值为字符的ASCII码,出错是为-1.getchar()函数只对字符起作用,在stdio.h中定义,其实是个宏定义函数,是getc(stdin)的宏定义。如果用户在按回车之前,输入了多个字符,除第一个字符外其他保留在缓冲区中,等待后续函数调用读取原创 2017-01-14 12:46:58 · 1935 阅读 · 0 评论 -
getchar()函数与scanf()函数相关知识点
【项目1-字母及其编码】编写一个程序,从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值。#include #include int main(){ char ch; printf("请输入一个小写字母:\n"); scanf("%c",&ch); printf("小写字母%c对应的大写字母为%c,对应的ASC原创 2017-01-13 13:46:31 · 475 阅读 · 0 评论 -
小题目练习
设score数组中存储8名同学的C语言成绩,字符串数组name中存储同学们的姓名。这两个数组中,每名同学的姓名与成绩的下标要始终保持一致(例如name[i]和score[i]表示同一位同学(下标为i)的姓名和C语言成绩,否则会张冠李戴)。(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。#include#include#define num原创 2017-01-30 10:29:22 · 366 阅读 · 0 评论 -
嵌入式工程师面试题——常见字符串编程小题目
写一个程序,从键盘输入字符,然后对字符进行逆序操作//采用递归的方法实现void myprint(char ch){ if((ch = getchar()) != '#') { myprint(ch); printf("%c",ch); }}int main(){ char ch; ch = getchar();//在原创 2017-07-29 10:52:21 · 979 阅读 · 0 评论