C
~
PixelMaster77
该博主比较懒,闲着无聊会更新
展开
-
C 标准库 – <signal.h>
C 库宏 - va_start()描述C 库宏 void va_start(va_list ap, last_arg) 初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。这个宏必须在使用 va_arg 和 va_end 之前被调用。声明下面是 va_start() 宏的声明。void va_start(va_list ap, last_arg);参数ap -- 这是一个 va_list 类型原创 2021-10-26 00:41:55 · 165 阅读 · 0 评论 -
C 运算符
& 与运算0&0=0;0&1=0;1&0=0;1&1=1两位同时为“1”,结果才为“1”,否则为0| 或运算0|0=0; 0|1=1; 1|0=1; 1|1=1;一个为1,其值为1^ 异或运算符0^0=0; 0^1=1; 1^0=1; 1^1=0;两个位为“异”(值不同),则该位结果为1,否则为0。>>= 右移后赋值转换为二进制,向右移动n位<<= 左移后赋值转换为二进制,向左移动n位|= 按原创 2021-10-26 00:37:45 · 152 阅读 · 0 评论 -
数组内存分配
使用C语言编程,实际上使用的内存只有一种——虚拟内存。根据功能的不同在C语言中又将虚拟内存为分三类:栈区、堆区、静态数据区,无论单一变量还是数组,其内存分配都是如此。其中,栈区、静态数据区、堆区都会有编译器负责分配、操作系统负责管理,程序员可以在堆区使用malloc()来动态分配堆内存。1、栈区:一般每一个函数对应一个栈区,在编译原理中称为栈帧。比如下面的代码:int main(){ //定义一个有20个int元素的数组。此时数组a分配的虚拟内存称为栈区,有编译器自行分配。 int a[20] =原创 2021-10-26 00:33:40 · 2880 阅读 · 0 评论 -
__attribute__机制
如果你看过GPSR协议在TinyOS中的实现,你一定会注意到下面的语句:typedef struct { double x; double y;} __attribute__((packed)) position_t;attribute可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)类型属性(Type Attribute)__attribute__语法格式为:__attribute__ ((attribute-list))其原创 2021-10-26 00:29:35 · 105 阅读 · 0 评论 -
字符串翻转(数组方式)
#include<stdio.h>int main(){ int i=0; char b; char a[100]=""; char b1[100]=""; int x; do{ b=getchar(); a[i]=b; i++; }while(b!='\n'); //获取a数组 x=i-1; int j; for(j=0;j<=i;j++){ b1[j]=a[x]; x--; } //a数组倒叙输出到b原创 2021-10-26 00:25:57 · 174 阅读 · 0 评论 -
字符串翻转(递归方式)
#include <stdio.h> /* 使用递归来翻转字符串 */void reverseSentence(){ char c; scanf("%c", &c); if( c != '\n') // 按下的不是回车键 { /*不会马上输出,必须等下一个 reverseSentence 函数执行完之后才打印, 相当于缓冲起来,最后再一次性释放,比如,输入:nma, 执行的顺序是: reverseSentence1()--缓冲打印n-原创 2021-10-26 00:24:56 · 754 阅读 · 0 评论 -
约瑟夫生者死者游戏(顺序存储结构)
题目简介约瑟夫游戏的大意是:有30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难。无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人数起,数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。问哪些位置是将被扔下大海的位置?算法思路(1循环,3判断)1.循环报数(遍历到最后一个再重新开始一次遍历)&直到下船人数达到15人为止(主要循环)2.判断遍历的人是否还在船上,如果在,则报数;否则跳过原创 2021-10-26 00:22:34 · 346 阅读 · 0 评论 -
斐波那契数列
解释:斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…这个数列从第3项开始,每一项都等于前两项之和。输出指定数量的斐波那契数列#include <stdio.h>int main(){ int i, n, t1 = 0, t2 = 1, nextTerm; printf("输原创 2021-10-26 00:15:43 · 235 阅读 · 0 评论 -
C 编码转换
编码格式1.BIN:binary,二进制的2.OCT:octal,八进制的3.HEX:hexadecimal,十六进制的4.DEC:decimal,十进制的一、4字节大小端转换uint32_t ugen_Conversion_32(uint8_t *data){ if (data == NULL) return 0; uint32_t ret_32 = 0; ret_32 = data[3]; ret_32 = (ret_32 << 8) + data[2]; re原创 2021-10-26 00:11:50 · 795 阅读 · 0 评论