
C Language
文章平均质量分 72
olncy
这个作者很懒,什么都没留下…
展开
-
不定参数的应用
不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多。除了格式化输出之外,我实在没看到多少应用。主要原因是 这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替换它。尽管如此,既然大家对它比较感兴趣,我就简单总结一下它的使用和需要注意的常见问 题。原理刚学C语言的时候,一般人都会首先接触printf函数。通过这个函数,你可以打印不定个数的变量到屏幕转载 2008-05-20 15:03:00 · 454 阅读 · 0 评论 -
四谈内存对齐
转者注:都已经转到第四篇了,不多说了...... 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/31444643.html最近在思考改进项目中一模块的实现,该模块维护起来让我很是头疼,所有才有了整体换掉它的想法。设计和实现中利用了内存对齐的技术。关于内存对齐,我曾经写过三篇文章,转载 2009-10-29 18:28:00 · 578 阅读 · 0 评论 -
三谈内存对齐
转者注:看到这样的排版真让人恶心到极点...不过见到原作者写了那么长就顺便转来看一下 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/3990258.html记得以前曾经两次谈到过内存对齐话题,一次在也谈内存对齐一文中,另一次则是也谈内存对齐(续),今天下午和同事又谈到转载 2009-10-29 18:25:00 · 673 阅读 · 0 评论 -
二谈内存对齐
转者注: 这续集写得比第一集还要差,本来不想转的,但看到他写了那么长,就顺便转来看一下 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/2661330.html关于内存对齐的话题,始终是敏感的。稍有不慎,必将闯下大祸!最近项目稍显轻闲,自己给自己安排一天反思和总结一下,突然想到以前写转载 2009-10-29 18:23:00 · 537 阅读 · 0 评论 -
也谈内存对齐
转者注:虽然本文写得不太好,但是见到写得这么长就顺便转来看一下 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/1347304.html在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”转载 2009-10-29 18:15:00 · 545 阅读 · 0 评论 -
堆和栈的区别(注意文章中的效率比较)
说明:我转这文章的目的不是说明堆和栈的区别,而是要看看文章最后对堆和栈的效率比较。 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配转载 2009-10-10 11:15:00 · 989 阅读 · 0 评论 -
一种另类的memcpy写法(在switch里写入一个dowhile)
void* mymemcpy( void* dest, const void* src, size_t count ){ char* d = (char*)dest; const char* s = (const char*)src;转载 2009-08-17 16:42:00 · 949 阅读 · 0 评论 -
C语言中Macro的终极用法
转载请注明出处,谢谢。 www.donevii.com 或 www.cpplite.com 那么,接下来我就先来介绍一下常用的宏技巧吧(听起来有点老套,不过请耐心看下去,会有收获的)。 1. 头文件包含守护 出现在某.h或.hpp .hxx中, #ifndef __HTML_PAGE_BUILDER_H__转载 2008-10-06 11:30:00 · 1689 阅读 · 0 评论 -
C--如何定义复杂的类型声明
Even relatively new C programmers have no trouble reading simple C declarations such as int foo[5]; // foo is an array of 5 intschar *foo; // foo is a pointer to chardouble foo()转载 2008-09-28 10:11:00 · 577 阅读 · 0 评论 -
TEA加密算法的C/C++实现
TEA(Tiny Encryption Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称。算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。目前我只知道QQ一直用的是16轮TEA。没什么好说的,先给出C语言的源代码(默认是32轮): 1 vo转载 2008-06-07 20:43:00 · 2106 阅读 · 3 评论 -
strlen源码剖析
学习高效编程的有效途径之一就是阅读高手写的源代码,CRT(C/C++ Runtime Library)作为底层的函数库,实现必然高效。恰好手中就有glibc和VC的CRT源代码,于是挑了一个相对简单的函数strlen研究了一下,并对各种实现作了简单的效率测试。strlen的函数原形如下: size_t strlen(const char *str);strlen返回str中字符的个数,其转载 2008-06-07 20:36:00 · 617 阅读 · 0 评论 -
10个重要的算法C语言实现源代码
1.拉格朗日插值多项式 ,用于离散数据的拟合 C/C++ code<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include stdio.h> #include conio.h> #include alloc.h转载 2008-05-20 15:22:00 · 1091 阅读 · 0 评论 -
C 语言的谜题[转]
转者注:在文章开头看觉得蛮有意思,一直看下去就会发现了自己对C语言的了解太小了。语言的歧义 [酷壳链接] [优快云链接]谁说C语言很简单? [酷壳链接] [优快云链接]6个变态的C语言Hello World程序 [酷壳链接] [优快云链接]如何加密/弄乱C源代码 [酷壳链接] [优快云链接]C语言的谜题 [酷壳链接] [优快云链接]我们可以看到很多C语言相关的一些东西。比如《语言的歧义》主要告诉了大家C语言中你意想不到的错误以及一些歧义上的东西。而《谁说C语言很简单》则通过转载 2010-09-14 17:52:00 · 820 阅读 · 0 评论