
C
文章平均质量分 80
春泥面包
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何防止头文件被重复包含、嵌套包含
From: http://blog.youkuaiyun.com/wzsbll/article/details/6655919【转自】 http://hi.baidu.com/zengzhaonong/blog/item/8a8871062d481f7f03088106.html#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:#i转载 2015-07-15 19:50:17 · 698 阅读 · 0 评论 -
浮点数在内存中的存储格式
细节决定成败转自http://blog.youkuaiyun.com/bingxuewujian/article/details/6437657由一个程序开始 [cpp] viewplaincopy#include using namespace std; int main(int argc, char* argv[])转载 2015-07-29 09:08:09 · 930 阅读 · 0 评论 -
sizeof() 类大小,空类大小
原文: blog.youkuaiyun.com/liu_qiqi/article/details/9344627一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。 如果 Class A; A obj; 那么sizeof(转载 2015-08-11 15:51:03 · 910 阅读 · 0 评论 -
如何将float转换为string
如何将float转换为string(转) 可能有好多人,包括C语言老手都不知道如何将float数据转换为string,我就是这样,今天查了一下MSDN,才知道C提供了_gcvt函数实现这个功能,收获着实不小,为了方便自己查询,也为了那些像我这样的网友能够了解该函数的具体用法,我把MSDN的原文原封不动抄录如下:_gcvtConverts a floating-point v转载 2015-07-29 09:10:30 · 5405 阅读 · 0 评论 -
字节对齐和边界对齐介绍
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数转载 2015-07-28 17:13:29 · 3486 阅读 · 0 评论 -
typedef
原文:www.cnblogs.com/this-543273659/archive/2011/08/19/2145583.html1.常规变量类型定义例如:typedef unsigned char uchar描述:uchar等价于unsigned char类型定义 uchar c声明等于unsigned char c声明2.数组类型定义例如: typ转载 2015-07-23 09:49:18 · 524 阅读 · 0 评论 -
C语言中如何在main函数开始前执行函数
原文: www.cnblogs.com/this-543273659/archive/2011/08/19/2145595.html在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下:#include __attribute((constructor)) void before_main() {转载 2015-07-23 09:55:19 · 804 阅读 · 0 评论 -
C Function Call Conventions and the Stack
原文: www.csee.umbc.edu/~chang/cs313.s02/stack.shtmlUMBC CMSC 313, Computer Organization & Assembly Language, Spring 2002, Section 0101C Function Call Conventions and the Stack[Revised 10/转载 2015-08-31 14:38:33 · 632 阅读 · 0 评论 -
基于Linux下的GCC编译器的内部预宏定义与__attribute__属性
原文: http://blog.youkuaiyun.com/wavemcu/article/details/43890305*****************************************************************************************************************************作者转载 2015-10-26 09:16:23 · 848 阅读 · 0 评论 -
查看当前系统的glibc版本
原文: http://my.oschina.net/acmfly/blog/77211/有时我们经常需要查看当前系统的glibc版本,可以这样查看: /lib/libc.so.6 有时:/lib/x86-64-linux/libc.so.6把这个文件当命令执行一下 为什么这个库可以直接run呢? 原来在libc的代码中有一点小手脚: Makerules:58转载 2015-10-27 13:21:06 · 2770 阅读 · 0 评论 -
The Lost Art of C Structure Packing
原文: http://www.catb.org/esr/structure-packing/The Lost Art of C Structure PackingEric S.Raymondesr@thyrsus.com>Table of Contents1. Who should read this2. Why I wrote it3. Align转载 2015-10-30 14:12:37 · 1155 阅读 · 0 评论 -
#pragma once
原文: https://en.wikipedia.org/wiki/Pragma_once#cite_note-11pragma onceIn the C and C++ programming languages, #pragma once is a non-standard but widely supportedpreprocessor directive转载 2015-08-06 14:48:46 · 1270 阅读 · 0 评论 -
C/C++中Static的作用详述
原文: http://www.dz3w.com/mcu/clanguage/050409//C272.htmC/C++中Static的作用详述在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要转载 2013-01-23 19:54:34 · 679 阅读 · 0 评论 -
Writing a Linux Keylogger in C
原文: http://samvh.nl/security/writing-a-linux-keylogger-in-c/Writing a Linux Keylogger in CToday we are going to write a Linux keylogger in C. We can do this by reading from the keyboard de转载 2016-01-11 14:13:56 · 2012 阅读 · 0 评论 -
实现一个简单的malloc
原文: http://www.ibm.com/developerworks/cn/linux/l-memory/ 参考: http://www.geeksforgeeks.org/memory-layout-of-c-program/C程序内存布局C程序的内存布局如下图所示: heap图中的heap就是堆空间,它的开始位置位于bss段的最后(可以调用sbrk(0)获取heap的起始地址,原原创 2016-12-01 15:41:20 · 1315 阅读 · 0 评论 -
Talloc
https://talloc.samba.org/talloc/doc/html/index.html阅读FreeRadius源码时,发现内存管理使用的是talloc,而不是malloc。现在来学习一下怎么使用talloc。What is talloc Talloc is a hierarchical, reference counted memory pool system with des翻译 2016-11-30 22:03:38 · 3904 阅读 · 0 评论 -
Linux 下 bool 类型定义
typedef enum{false=0,true=!false} bool ;原文:转载 2014-08-15 15:58:07 · 5318 阅读 · 0 评论 -
memory layout of c program
原文: http://www.geeksforgeeks.org/memory-layout-of-c-program/转载 2014-08-14 16:13:13 · 1148 阅读 · 0 评论 -
scanf中用','作为字符串分隔符
代码: char msg1[1024]; char msg2[1024]; char msg3[1024]; scanf("%[^,],%[^,],%s", msg1, msg2, msg3); printf("%s,%s,%s\n", msg1, msg2, msg3);你能解释一下上面代码的意思吗?对输入:hello world,huntinux,stay原创 2012-12-16 20:28:07 · 6242 阅读 · 1 评论 -
什么叫栈?什么叫堆?堆与栈的联系与区别
原文: http://www.dz3w.com/mcu/clanguage/9228.html什么叫栈?什么叫堆?堆与栈的联系与区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程转载 2013-01-23 20:07:09 · 1744 阅读 · 0 评论 -
C语言中memset函数详解
原文: http://blog.sina.com.cn/s/blog_715d0ae30100yj2d.html功 能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程转载 2013-01-28 09:33:15 · 660 阅读 · 0 评论 -
关于fflush
原文: http://bbs.bccn.net/thread-188008-1-1.html1. 为什么 fflush(stdin) 是错的首先请看以下程序:#include int main( void ){ int i; for (;;) { fputs("Please input an integer: ", stdout转载 2013-02-07 21:34:27 · 682 阅读 · 0 评论 -
typedef和#define的用法与区别
原文: http://blog.youkuaiyun.com/cigogo/article/details/5124046方便以后自己查找,把网上看到的两篇文章都转载到这里。一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int I转载 2013-02-11 23:22:16 · 630 阅读 · 0 评论 -
#ifdef __cplusplus 深度剖析
原文: http://bbs.ednchina.com/BLOG_ARTICLE_251752.HTM时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #en转载 2013-09-21 19:03:55 · 785 阅读 · 0 评论 -
标记化结构初始化语法(C语言)
原文: http://blog.youkuaiyun.com/chen_chun_guang/article/details/6199932 以前在看Linux代码时,就对它的结构体初始化写法感到奇怪,所有的初始化代码都写清了变量名,并且变量名前面还有一个诡异的点。最近学习Linux设备驱动,又遇到了,就查了一下,发现自己的知识果然纰漏不少,此种初始化写法并不是什么特殊的代码风格,而是所谓转载 2013-10-26 14:56:40 · 780 阅读 · 0 评论 -
\033[31m
在一个程序中看到这个: write(1, "\033[31m", 5); 向标准输出写入: "\033[31m" 。这是什么呢?原来是设置输出的颜色。见wiki百科FGRED=`echo "\033[31m"`FGCYAN=`echo "\033[36m"`BGRED=`echo "\033[41m"`FGBLUE=`echo "\033[35m"`B原创 2013-11-01 11:28:13 · 9341 阅读 · 3 评论 -
strtok
原文: http://www.blogjava.net/weidagang2046/articles/15680.htmlchar * strtok ( char *string, const char * delimiters );Sequentially truncate string if delimiter is found. If string i转载 2013-11-01 17:28:57 · 872 阅读 · 0 评论 -
new 与 malloc的区别
原文 : http://bbs.youkuaiyun.com/topics/3901411941).new ,delete是操作符,可以重载,只能在c++中使用2).malloc,free是函数,可以覆盖,c,c++中都可以使用3).new可以调用构造函数,delete调用对应的析构函数4).malloc仅仅分配内存,free仅仅回收内存5).new,delete返回的转载 2013-11-20 20:32:52 · 860 阅读 · 0 评论 -
c and pointer : chp8
#include int main(){ char *str = "helloworld"; char str2[] = "helloworld"; int arr[10]; printf("char * str: %lu\n", sizeof(str)); printf("char str2[]:%lu\n", sizeof(str2));原创 2014-03-21 11:07:00 · 811 阅读 · 0 评论 -
fgets
总结一下fgets的使用注意:先来看看fgets man 文档:char *fgets(char *s, int size, FILE *stream); fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to原创 2013-11-01 17:00:15 · 2573 阅读 · 0 评论 -
C语言资源
1、知乎上:c语言小型项目熟悉语言可以看看glibc 库的代码,里面的很多函数都是你平常用的,内部实现写的挺好的。熟悉linux可以看看一些日常命令的实现,比如 cp , vmstat 等网络编程可以看看一些轻型web服务器,都是万行代码以下的原创 2014-04-28 11:47:37 · 879 阅读 · 0 评论 -
do...while(0)的妙用
原文: http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.htmldo...while(0)的妙用转载 2014-05-20 10:58:16 · 682 阅读 · 0 评论 -
assert() : 如何正确的使用
请先阅读一下man page,不要急躁。ASSERT(3) Linux Programmer's Manual ASSERT(3)NAME assert - abort the program if assertion is falseSYNOPSIS ...原创 2018-04-24 09:59:07 · 6973 阅读 · 0 评论