C语言
book_rain
此人很懒,什么都没有写!
展开
-
i(expression), 三元运算,逻辑取反运算中expression为负数或者正数结果均为1,expression==0,结果才为0
i(expression),三元运算,逻辑取反运算中, expression为-1或者+1,结果均为1;只有expression的值为0,结果才是1#include <stdio.h>int main(){ printf("\n\n\n逻辑取反运算,表达式判断测试\n"); int i=0; printf("i=%d, !i=%d, !!i=%d\n", i, !i, !!i); i= -1; printf("i=%d, !i=%d, !!i=%d\n", i,.原创 2020-11-03 19:29:06 · 368 阅读 · 0 评论 -
C语言sizeof求结构体数组长度
#include <stdio.h>typedef struct ss{ char a;//偏移量为0,大小为1,0能被1整除,=1 short b;//偏移量为1,大小为2,1不能被2整除,=1+1+2=4 int c;//偏移量为4,大小为4,4能被4整除,=4+4=8 long d;//偏移量为8,大小为4,8能被4整除,=8+4=12} ss_t;struct ss s1[]={ {0x1,0x2,0x3,0x4}, {0x5,0x6,0x7,0x8}, {0xa.原创 2020-10-29 13:46:27 · 10089 阅读 · 2 评论 -
printf打印彩色字符
代码参考来源:https://blog.csdn.net/qq_29796781/article/details/81135198#include <stdio.h>/*#define DBG_PRINT(format, arg...) do { fprintf(stdout,"%ld,%d,[flash_sn]--- "format"\n",\ get_current_time(.转载 2020-08-10 08:58:01 · 612 阅读 · 0 评论 -
3元运算符 ? : 的一些用法
#include <stdio.h>#include <printf.h>int main(){ int a = 5, b = 99, c = 0, d=0, e=7, f=6; c = a>0 ?: b; d = a<0 ?: b; e = e ?: b; //f = f? b: ; /*illegal usage, compile error*/ printf("c=%d\n",c); printf("d=%d\n",d); printf(".原创 2020-06-05 16:54:36 · 408 阅读 · 0 评论 -
list repeat node num
#include <stdio.h>struct list_SY{ struct list_SY *next; int data;};struct list_SY *listSY;char data[]={0, 1, 1, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 5, 2, 1, 0, 5, 6, 5};int da...原创 2020-04-11 13:51:21 · 193 阅读 · 0 评论 -
求一个整数中bit位为1的个数
#include <stdio.h>int get_bit1_cnt(unsigned int x){ int n = 0; while (x) { n += ((x & 0x1)? 1 : 0); x = x>>0x1; } return n;}int get_bit1_cnt_test(unsigned int x){...原创 2020-04-11 09:27:41 · 967 阅读 · 0 评论 -
Big Endian 和 Little Endian 如何判断
https://blog.csdn.net/waitingbb123/article/details/80504093如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为;address big-endian little-endian0x0000 0x12 0xcd0x0001 0x34 ...原创 2020-04-10 14:03:21 · 219 阅读 · 1 评论 -
printf sprintf 格式化数据,并按每行N个数字的格式打印所有的数据
参考https://www.cnblogs.com/52php/p/5724390.html嵌入式操作系统---打印函数(printf/sprintf)的实现:https://blog.csdn.net/u010961173/article/details/79769747int firmware_printf(const struct firmware *pfw, unsign...原创 2019-02-25 21:36:41 · 769 阅读 · 0 评论 -
英文原版数据中对Arm cache的操作flush(invalidate),clean的描述
参考自:书籍《ARM System Developer's Guide-ENG》 和《ARM 体系结构鱼编程 第二版》中clean:将cache中尚未写入到主存储器中的数据回写到主存储器中。flush:在有的书中称作invalidate,故名思意就是将cache中的invalid标志位设置为1/0,使本cache中的内容无效。《ARM 体系结构鱼编程 第二版》中...原创 2018-11-05 15:07:03 · 6271 阅读 · 1 评论 -
error: ISO C90 forbids mixed declarations and code
在进行linux 的audio驱动开发过程中,遇到一个问题。编译时总是提示出错。最后问题得以解决,但是查看其他驱动模块,按照图1这种写法不会出错,很大可能性是对编译器设置的代码检查规则不一样。 error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] struct vad...原创 2018-11-03 14:58:25 · 2507 阅读 · 0 评论 -
内联函数声明但未定义 “warning: inline function `*` declared but never defined”
1、详情请查看:http://blog.csdn.net/superbfly/article/details/52290606Adding the -fgnu89-inline flag fixes the warnings, by enabling "traditional GNU semantics for inline functions when in C99 mode".转载 2017-11-30 15:42:58 · 4890 阅读 · 0 评论