- 博客(37)
- 资源 (18)
- 收藏
- 关注
原创 C语言特殊宏定义`##`连接符、 `#`符 和 `__VA_ARGS__`的使用
C语言特殊宏定义##连接符、 #符 和 __VA_ARGS__的使用特殊符号#When you put a # before an argument in a preprocessor macro, the preprocessor turns that argument into a character array.将#置于预处理宏的某个参数之前,预处理器会把这个参数转化为一个字符
2018-02-03 22:41:16
748
1
转载 C语言 -- 宏的特殊用法和几个坑
C语言宏的特殊用法和几个坑宏基础宏特殊用法几个坑 转载C语言宏的特殊用法和几个坑总结一下C语言中宏的一些特殊用法和几个容易踩的坑。由于本文主要参考GCC文档,某些细节(如宏参数中的空格是否处理之类)在别的编译器可能有细微差别,请参考相应文档。宏基础宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下:标示符别名#define BUFFER_SIZE 10
2017-08-22 16:30:08
953
原创 ip_hash函数
对int型(uint32_t)数字的哈希函数整理 有空测试下,扩充下这部分的内容/* * Integer hashing tests. These functions work with 32-bit integers, so are * perfectly suited for IPv4 addresses. A few tests show that they may also *
2017-08-20 20:39:22
2440
转载 结构体对齐详解
结构体对齐详解结构体数据成员对齐的意义结构体对齐包括两个方面的含义结构体大小的计算方法和步骤结构体大小计算举例 null null char short int long float double long long long double Win-32 长度 1 2 4 4 4 8 8 8 Win-32 模
2017-08-17 11:51:22
511
转载 C -- 结构体之位域
C结构体之位域位域的定义和位域的使用位域的对齐【转自:http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html】 其中有些说法和用词不是很准确,本人未修改,对此不负责C结构体之位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位
2017-08-16 20:44:25
539
翻译 Memory中的Channel/Rank/Bank解析
Memory中的Channel/Bank/Rank解析最近在看网卡底层驱动的一些资料,被内存bank,rank,channel这些关于memory的名词搞得绕来绕去,网上查了一些资料,说得也不全面。在这里让我们一步一步来拆解memory的神秘面纱,从架构到读写逐步解开这块秘密。发挥性memory分两种,SRAM与DRAMRAM(Random Access Memory)随机存取内存,之所以叫做“随机
2016-05-26 16:08:12
52142
11
原创 C调用Lua -- 简单的解释器程序实现
C调用Lua – 简单的解释器程序实现C调用Lua 简单的解释器程序实现November 5, 2015 10:57 PM仿照*《Lua程序设计第二版》*ch24中的示例程序,在Lua 5.3.1版本下成功利用gcc编译运行了这段代码。首先源代码程序如下#include <stdio.h>#include <string.h>#include "lua.h"#include "lauxli
2015-11-05 23:00:20
1621
原创 Lua 学习之 coroutine as iterators
Lua 学习之 coroutine as iterators在学习Programming in Lua3 Ch9,书中给出了一个很好的理解iterator, closure以及coroutine的程序示例,现将代码理解注释整理如下:function permgen (a,n) n = n or #a if n <= 1 then coroutine.yield(a)
2015-09-18 14:57:35
514
原创 GCC在C语言中内嵌汇编 asm __volatile__ (2)
GCC在C语言中内嵌汇编 asm volatile (2)August 22, 2015 10:20 AMGCC在C语言中内嵌汇编 asm volatile 2asmInstruction List__volatile__OutputInputClobberModify[在上一篇的基础上,在网上整理实践了一下, 这份资料更加简单明了, enjoy~]asm volatile内嵌汇编用法
2015-08-22 11:33:47
5828
转载 Linux等待队列wait_queue_head_t和wait_queue_t
Linux等待队列wait_queue_head_t和wait_queue_t
2015-08-18 19:48:53
949
翻译 DPDK-CH3
Chapter 3 ENVIRONMENTABSTRACTION LAYEREnvironment Abstraction Layer (EAL) 负责底层的资源比如像硬件以及内存空间。它提供了一个通用接口,隐藏了从app到lib的环境细节。由初始化例程来负责如何分配这些资源(比如,memory space, PCI devices, timers, consoles 等等)。典型的EAL提供的服务
2015-05-29 23:15:44
1365
翻译 APUE-CH3 文件IO(2)
read FunctionData is read from an open file with read function#include <unistd.h>ssize_t read(itn fd, void(buf), size_t nbytes) Returns: number of bytes read, 0 if end of file, -1 on error
2015-05-28 23:01:09
547
翻译 APUE-CH3 文件IO(1)
Ch3 文件IO3.1 引言Unix系统中大多数I/O只需用到五个函数:open,read, write, lseek以及lose。然后说明不同缓冲长度对read和write函数的影响。本章描述的函数被称为不带缓冲的*I/O(unbuffered I/O,与ch5中说明的函数对照)。术语不带缓冲*指的是每个read和write都调用内核中的一个系统调用。这些不带缓冲的I/O函数不是ISO C的组成部
2015-05-27 14:54:47
1665
原创 经典话语-20131116
今天读到龙应台的一句话,很符合我现在的想法,他写给儿子安德烈的一段话:孩子,我要求你读书用功,不是因为我要你跟别人比成绩,而是因为,我希望你将来会拥有选择的权利。选择有意义、有时间的工作,而不是被迫谋生。当你的工作在你的心中有意义,你就有成就感;当你的工作给你时间,不剥夺你的生活,你就有尊严。成就感和尊严,给你快乐。
2013-11-16 20:52:45
592
转载 MySQL报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this st
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement解决办法:mysql> set global read_only=0;(关掉新主库的只读属性) flush privileges;set global read_on
2013-08-20 22:03:04
2021
转载 C/C++程序员必读的十本书
这个题目大的有些离谱,实话说,只是想推荐一下自己觉得很好、值得收藏的一些技术方面的图书。如果不是程序员,或者关心的方向是网页开发、数据库开发,或者只是想了解一下开发流程,这些书不都是适合你,但也很值得收藏了。这篇文字的针对目标是,微软平台下的c/c++程序员,学过计算机基础学科,有一定的英语阅读能力。建议购买的顺序也是从上至下。(1)建议大家阅读的第一本书是《编码的奥秘》(英文名《
2013-08-15 16:24:57
2532
转载 程序员常去的一百个网站
1 J2me开发网 http://www.j2medev.com/bbs/index.asp2 J2me社区 http://www.j2meforums.com/forum/3 csdn http://www.csdn.net/4 Vc知识库 http://www.vckbase.com/5 codeproject http://www.codeproject.co
2013-08-15 16:19:30
943
原创 有空看看下面这些书
//------------------2013.05.02------------------------------现代控制系统(第八版) modern control systems非线性时间序列分析 - 非参数与参数方法 (Nonlindear series xxx)模式分类控制理论及应用函数型数据分析泛函分析//------------------------
2013-05-02 13:02:54
806
转载 linux 内核定时器编程
1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include 以下列出常用的接口:struct timer_list{/*....*/unsigned long expires;//定时器服务函数开始执行时间void (*function)(unsigned long);//定
2013-04-23 10:08:29
750
转载 深入剖析Linux内核定时器实现机制
深入剖析Linux内核定时器实现机制Sailor_foreversailing_9806@163.com转载请注明http://blog.csdn.net/sailor_8318/archive/2008/07/09/2627136.aspx【摘要】本文详解了Linux内核的定时器实现机制。具体分析了定时器的分级组织结构,以及在此基础之上的插入、更新、扫描执行等过程。其动态刷新
2013-04-22 15:20:28
1050
转载 tcp_sock,inet_sock和inet_connection_sock的关系
struct tcp_sock { struct inet_connection_sock inet_conn; //inet_connection_sock has to be the first member of tcp_sock... }; inet_connection_sock - INET connection oriented sockstruct in
2013-04-19 21:21:33
2198
转载 打字指法——双手
前言:打字是一个人学习计算机的必修之路,从最早的二指禅到正确的指法,最终到盲打,但即使是盲打,却在速度上也有着天壤之别,因为即使你知道正确的指法,你未必用的就是正确的手法。例如:大家一开始把手放在键盘的位置都很对,但是按字母的时候就未必了吧,比如我经常用左手的小拇指shift+无名指数字1来打感叹号,这样很明显是影响速度的,所以我决定从打字开始纠正自己所学的一切错误。正文:
2011-12-25 21:38:01
5268
转载 头文件保护符和#pragma once
会为了防止头文件被包含多次,都会在每个头文件中写与如下类似的代码:// a.h#ifndef A_H#define A_H//内容#endif这样,你如果在两个地方都有这个语句:#include "a.h"那么这个头文件将被保证只被加入一次
2011-10-06 17:06:54
742
原创 c++primer 2.5 const 有感想
#includeusing namespace std;int main(){ //example 1 int i = 123; int & cpy1_i = i, &cpy2_i = cpy1_i; cpy2_i = 321; cout c
2011-09-30 22:38:19
517
转载 什么是好的编程字体:等宽字体
作为程序开发者,每天打交道最多的就是程序代码了,而每天读写几千行的代码让眼睛很容易产生疲劳,我自己对此已经是深恶痛绝了.为了保护自己眼睛同时提高自己的代码读写效率,显然是要从显示程序代码的字体入手.下面讲讲我编程多年以来代码字体的选择之路.目前很多人都还在使用宋体作为自己ID
2011-09-30 20:57:05
1763
转载 Printf()输出格式控制
1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括flo
2011-09-20 15:05:24
685
转载 指针和二维数组
比如:a[3][4]是一个二维数组,怎么定义一个指针p,使得它能替代数组名a?比如对于访问一个元素,如果用数组名,可以这样:*(*(a+i)+j)怎么定义然后赋值使得p 也可以这样取数据:*(*(p+i)+j)?==================
2011-09-18 15:50:06
441
PDFPasswordCracker
2011-11-30
solid converter pdf
2011-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人