C/C++
striver1205
这个作者很懒,什么都没留下…
展开
-
GCC 查看编译和链接搜索路径
当我们使用交叉编译工具时,总是出现无法找到头文件或者链接库的问题,一般都是编译工具环境问题,我们可以采用以下方式查询当前头文件或者链接库搜索路径。编译头文件搜索路径:echo "" | gcc -v -x c -E -gcc -v -x c -E empty.c链接库搜索路径:ld --verbose | grep SEARCH | sed 's/;[ ]/\n/g'SEARCH_DIR("/usr/x86_64-linux-gnu/lib64")SEARCH_DIR("=/u原创 2022-04-22 09:49:57 · 2452 阅读 · 0 评论 -
低版本ulibc支持recvmmsg sendmmsg功能
最近调试openwrt,发现低版本的ulibc不支持recv/send mmsg API,故简单写个实现一个测试程序,直接贴代码吧!,这里的程序可能兼容新版版本的ulibc出现问题,所以使用wrap_简单封装一下。#define _GNU_SOURCE#include <netinet/ip.h>#include <stdio.h>#include <st...原创 2019-07-03 11:09:39 · 830 阅读 · 0 评论 -
结构体对齐详解
一、字节对齐的规则:1、一般设置的对齐方式为1,2,4字节对齐方式。结构的首地址必须是结构内最宽类型的整数倍地址;另外,结构体的每一个成员起始地址必须是自身类型大小的整数倍(需要特别注意的是windows下是这样的,但在linux的gcc编译器下最高为4字节对齐),否则在前一类型后补0;这里特别提到的是数组一定要注意,而且在一些编程的技巧中,我们可以使用数组强制字节达到对齐的目的。这在网络原创 2014-11-17 16:27:19 · 5456 阅读 · 0 评论 -
单链表反转 c实现
http://blog.csdn.net/niuer09/article/details/5961004转载 2014-11-07 11:32:36 · 888 阅读 · 0 评论 -
scanf family API 高级用法
如何解释 fscanf(fd,"%*[^\n]")"%[^\n]"表示读输入字符串,直到碰到字符‘\n’为止,其中^表示否的意思sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。 1. 常见用法。 以下是引用片段: cha转载 2014-08-08 14:48:56 · 607 阅读 · 0 评论 -
CPU的大小端问题
1> 如何判断一个板子的cpu 是big-endian 还是 Little-endian的? big-endian与little-endian判断endian : #include #include int main(void){ short int a = 0x1234; char *p = (char *)&a; p原创 2012-04-19 15:44:12 · 1921 阅读 · 0 评论 -
PIC中的#pragma idata 和#pragma udata
PIC中的#pragma idata 和#pragma udata:idata表示已经初始化的数据。udata表示没有初始化的数据。当一个数据块没有足够的空间用于存放一个连续的数据时(数组);此时便可用#pragma idata 或#pragma udata来定义一个新的存放数据块的区域。但是#pragma idata 或#pragma udata申请的空间也还是有限的,一般不能大转载 2012-07-26 13:53:23 · 1149 阅读 · 0 评论 -
printf 中转义字符大全
表一转换说明符及作为结果的打印输出转换说明输出%a浮点数、十六进制数字和p-记数法 (C99)%A浮点数、十六进制数字和P-记数法 (C99)%c一个字符%d有符号十进制整数%e浮点数、e-记数法转载 2012-04-19 15:49:48 · 36130 阅读 · 3 评论