
C语言
dbitc
这个作者很懒,什么都没留下…
展开
-
gcc的__attribute__参数
gcc __attribute__原创 2023-02-19 10:53:13 · 336 阅读 · 0 评论 -
结构体取元素位置
实用系列之结构体元素位置。原创 2022-08-17 09:29:40 · 299 阅读 · 0 评论 -
windows下vs code编程工具配置
C/C++环境:global 工具: C/C++ GNU Global需要本地安装global.exe //免安装工具,只需要放在全局path列表中就行。GLOBALGNU GLOBAL source code tag system.http://adoxa.altervista.org/global/插件列表:C/C++文件图标:Material Theme Icons括号优化插件:Bracket Pair ColorizeBetter C++ SyntaxBookmark原创 2022-02-06 16:14:49 · 760 阅读 · 0 评论 -
C语言宏定义
__VA_ARGS__是为了把define中左边的...,原样不动地传送到define的右边#define myprintf(...) printf( __VA_ARGS__)原创 2022-02-03 11:36:29 · 596 阅读 · 0 评论 -
ASCII表历吏
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。ASCII表历史:1963年, ASCII表被the "American Standards Association" Committee or "ASA"创建,此时只含有大写字母和数字1967年,新增小写字母和控制字符,俗称:US-ASCII,编码值范围为0~127,包含...原创 2021-12-17 11:22:36 · 917 阅读 · 0 评论 -
C语言__bitwise宏定义
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/dev-tools/sparse.rst原创 2021-06-17 20:26:07 · 887 阅读 · 0 评论 -
可变长度参数的应用方式
va_list 直接函数定义:va_list是编译器内嵌的一种函数。typedef __builtin_va_list __gnuc_va_list;typedef __gnuc_va_list va_list;int dbg_print(const char *fmt, ...){ int len; char buf_tmp[1024]; va_list args; va_start(args, fmt); printed_l.原创 2021-03-12 20:10:33 · 334 阅读 · 1 评论 -
C语言嵌入式汇编
C语言嵌入式汇编,如下形式asm volatile("InSTructiON List" : Output : Input : Clobber/Modify);asm是关键字,必选项 volatile 是可选的,加了,GCC就不会优化这句。 汇编指令间必须被双引号括起来; 汇编指令间必须使用";"、"/n"或"/n/t"分开分开; ()内的是可选的,如asmvolatile("")是可以的,只是无意义 仅省动其中一项,分号需要加上:如这个省了输入和输出的,asm volat...原创 2020-12-16 15:39:26 · 4232 阅读 · 0 评论 -
C语言中的hook和bait设计
在C语言中的hook和bait设计经常用到在一处需要一个通用接口,调用另一个地方的函数hook函数:实际调用的接口。负责传入参数和运行。bait函数 :具体算法的实现接口,hook传入参数后,负载具体实现的算法。具体使用方式:step1:先初始化hookset和hook。分配hookset和hook的内存step 2: call hook和 add bait //注意:一定要先初始化后,才能做call hook和 add bait的动作。实际运行时,只需要...原创 2020-11-18 15:14:42 · 553 阅读 · 0 评论 -
免费好用的代码编写工具
查询工具:ag - the Silver Searcher //可以在vs code中用,或 win10下的wsl对应的ubuntu下用。IDE :vs code文件查询: everything压缩工具:好压代码比较: meldconsole工具: putty或Tera Term文件管理: Just Manager持续扩展中....原创 2020-08-20 16:36:07 · 736 阅读 · 0 评论 -
变量静态声明是否会被执行多次(static)
变量静态声明是否会被执行多次(static)如下部分,是一个函数的一部分,当这个函数被执行多次,声明部分,是否会被多次执行呢? static char sep = ' '; static int num = 0; printf("this is %2d:sep=%2c----string=%8s\r\n",num,sep,string); sep = ',原创 2017-03-04 08:58:23 · 6794 阅读 · 0 评论 -
__attribute__((packed))详解
http://blog.chinaunix.net/uid-25768133-id-3485479.html1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,转载 2017-01-25 20:58:34 · 331 阅读 · 0 评论 -
自旋锁的使用spin_lock
在驱动中经常需要使用自旋锁来确保一个固定序列操作不补打断。/* 初始化锁x为,非锁定状态 */spin_lock_init(x);/* 可以用在中断中的,锁的处理 *//* 如下不会改变中断当前状态 */int flags;spin_lock_irqsave(&x, flags);spin_unlock_irqrestore(&x, flags);/* 如下会改变中断当前状态原创 2017-02-19 15:00:26 · 1455 阅读 · 0 评论 -
ALIGN(x, mask)函数详解
ALIGN(x, mask)函数详解详细定义为:#define ALIGN(x, mask) (((x) + (mask-1)) & ~(mask-1))功能为:对x取mask的整数倍,如果x没有达到mask的最接近整数倍,补值达到最近的整数倍实例:设x=5,mask=32~(mask-1):-32____((x) + (mask-1)):原创 2017-02-06 11:56:46 · 5806 阅读 · 1 评论 -
C语言中的位声明
来源:https://zhidao.baidu.com/question/496863114900650484.html该种形式出现于结构体或共用体的定义中,是位域定义的标准形式。其使用方式为struct name{ type var_name : n;};含义为,在结构体name汇总,成员变量var_name占用空间为n位。n为正整数,其值必须小于type转载 2016-12-19 12:10:13 · 1272 阅读 · 0 评论 -
cpluscplus在线库参考
http://www.cplusplus.com/reference/原创 2017-01-01 21:42:32 · 702 阅读 · 0 评论 -
文件比较工具列表
1.Diffuse,支持文本和C语言2.WinMerge,支持文本3.Code Compare ,支持文本4.AptDiff,支持文本和二进制5.Beyond Compare,支持文本和C语,但会收费原创 2016-12-21 22:17:31 · 660 阅读 · 0 评论