c
文章平均质量分 62
chief1985
好好学习
展开
-
chrome里面的一些技巧
1. 求数组长度 求数组长度一般采用的是#define count_of(arg) (sizeof(arg) / sizeof(arg[0])),但这个宏对于指针在编译是不报错的,chrome里面是这么干的: template char (&ArraySizeHelper(T (&array)[N]))[N];#define arraysize(array) (sizeof(ArraySizeHelper(array)))void Test(int C[3]){ int原创 2011-05-26 19:36:00 · 3845 阅读 · 0 评论 -
宏展开
以前在看linux源代码时,经常被一些宏所困惑,主要原因有:1.宏被宏包含,一旦级数多了之后,而你又不知道最外面的宏是什么。2.宏写的非常复杂。3.使用了一下你还不知道的技巧。当出现这种情况后,我就想找一个宏展开的工具,找了半天也没找到。最近在google搜索宏的时候发现可以用下面的方法将宏展开。#include #define MIN(x,y) (x<y?x:y)#define TO原创 2009-09-26 17:00:00 · 3402 阅读 · 1 评论 -
打印调用堆栈
java里面可以使用Throwable类来获取堆栈,示例代码如下:package name.xu;public class CallStack { public static void printCallStatck() { Throwable ex = new Throwable(); StackTraceElement[] stackElements = ex.getS原创 2009-09-29 20:28:00 · 13042 阅读 · 1 评论 -
va_list、va_start、va_arg、va_end的原理与使用
概述 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义 大家先看几宏. 在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义: #define _INTS原创 2009-06-03 22:14:00 · 3968 阅读 · 0 评论 -
JavaScript-C引擎嵌入开发指南
导读: JavaScript-C引擎概览 本文档提供了一个JavaScript(JS)引擎的C语言实现的概述,他介绍了你如何在你的应用程序中嵌入脚本引擎来让它们可以使用JS。有两大理由让你在应用程序中嵌入JS引擎:使用脚本来自动操作你的应用程序;同时使用JS引擎和脚本无论何时都可以提供跨平台的功能并消除了应用程序解决方案对平台的依赖性。 受支持的JavaScript版本 本原创 2008-09-18 20:06:00 · 1936 阅读 · 1 评论 -
C语言编译产生的.OBJ文件和汇编编译产生的.OBJ文件,如何连接_百度知道
导读:rubo C的命令行编译连接 所谓命令行编译,是指在dos下,调用Trubo C的tcc.exe程序.来完成对turboC源程序的编译连接工作.当选择对后缀为*.asm的汇编程序文件编译时,tcc还要调用TASM后才能对后缀为.asm的文件进行编译,这种方式适合于c程序与汇编语言混合编程的编译连接,当c程序嵌入汇编指令时,也必须用此方法编译连接。 命令行编译的格式为: t原创 2008-05-25 22:46:00 · 5815 阅读 · 0 评论 -
如何减小EXE和DLL的文件长度&init&crt&startup
作者: Matt Pietrek 翻译: lostall 原文: Under The Hood: Reduce EXE and D转载 2008-05-10 23:41:00 · 1772 阅读 · 0 评论 -
sscanf函数的高级用法|sscanf,函数,高级用法-中国源码网
导读: sscanf函数的高级用法 转载时请注明出处:http://blog.csdn.net/absurd/ 大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。 1. 常见用法。char str[5原创 2008-04-30 00:57:00 · 1887 阅读 · 0 评论 -
c++中不常用的关键字
有些不常用的关键字在某些场合很有用,转载自http://www.softhouse.com.cn/news/show/13406.html mutable关键字 关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化!如果一个类的成员函数被声明转载 2009-10-01 00:06:00 · 956 阅读 · 0 评论 -
禁用bool关键字
最近在改SDL代码时,增加了一个函数,返回值为bool型,结果编译是报错。所以我就到网上找如何可以禁用bool,发现可以用/noBool编译选项禁止,但我到SDL的编译选项看时却没有这个选项,我就纳闷时候还有别的方法?最终的原因是SDL的代码是c的,在c语言里面是没有bool类型的(当然有些编译器会预先定义bool,不过大部分是没有bool)。通过看SDL的编译选项,我还发现了一下有用的编译选项原创 2009-10-01 00:17:00 · 1319 阅读 · 0 评论 -
[转载]情景分析“C语言的const关键字”
转自:http://roclinux.cn/?p=557C语言中的const一直是C语言初学者心中的痛,这是因为const在不同位置有不同作用,在不同情景有不同角色。这让初学者摸不清头脑。今天,和大家一起研究一下const,让它的每个角色都“深入人心”!=====================================================================转载 2009-10-20 22:31:00 · 1937 阅读 · 1 评论 -
wcscpy_s会改变后面的内容
wchar_t testBuf[MAX_PATH] = {0}; wcscpy_s(testBuf, MAX_PATH, L“c:/test”); assert(testBuf[16] == 0); 上面的代码会中assert,说明wcscpy_s会将/0后面的内容改变。原创 2011-05-26 19:20:00 · 5477 阅读 · 1 评论 -
wprintf输出中文
浅析 Linux 的国际化与本地化机制 http://www.ibm.com/developerworks/cn/linux/l-cn-linuxglb/index.html?ca=drs- 如何获得当前系统的locale呢?包括windows和UNIX http://bbs.chinaunix.net/viewthread.php?tid=1752378 http://search.cpan.org/~sburke/Win32-Locale-0.04/Locale.pm use Win32:原创 2010-11-09 22:07:00 · 8994 阅读 · 2 评论 -
调试dll和exe加载失败
如果启动程序时出现《应用程序正常初始化(0xc0000142)失败。请单击“确定”,终止应用程序》这种错误,可以先用depends.exe这个工具来看依赖没有问题。如果没有问题,可以用resourcehacker之类的工具看exe和dll的资源段的manifest信息,通过这个来看依赖的crt是否正确,特别要注意不同dll之间这个信息可能不一样(一个exe不能同时加载多个版本的crt)。如果还不能解决,只能通过调试器来分析了。通过devenv.exe 《程序路径》来启动程序,然后打开下面的文件,并在相应地方原创 2010-10-20 21:33:00 · 3401 阅读 · 1 评论 -
奇技淫巧之避免因宏带来的名字冲突
<br />转自:http://hi.baidu.com/solidmcp/blog/item/3e8fd789d4142ebd0f2444f2.html 。介绍的方法不错,可以解决很多宏冲突的问题。<br /> <br /> <br /><br />奇技淫巧之避免因宏带来的名字冲突<br /> <br />>> 退避三舍:<br />既成事实,不得不低头,你把max的名儿占了,那我就叫iMax;<br /> <br /><br />>> 刮骨疗伤:<br />中毒没问题,格老子效仿关云长刮骨疗伤。<br转载 2010-10-18 16:09:00 · 2041 阅读 · 0 评论 -
解决程序对vs crt的依赖(2)
在上篇文章里面(http://blog.csdn.net/chief1985/archive/2010/03/23/5409875.aspx),讲过了一些解决程序对vs crt的依赖的方法,下面介绍一种在vista以上版本可以用的方法,即SXSTrace.exe,下面是两个介绍 使用方法的文章:1。Diagnosing SideBySide failures (sxstrace.exe usa原创 2010-04-01 19:11:00 · 1856 阅读 · 0 评论 -
const与数组声明
在libidn的stringprep.h里面,有这样的声明:extern IDN_DLL_VAR const Stringprep_profiles stringprep_profiles[];extern IDN_DLL_VAR const Stringprep_table_element stringprep_rfc3454_A_1[]; 声明的实现在c文件里面,例如profile原创 2010-02-03 20:14:00 · 6030 阅读 · 2 评论 -
sizeof总结
一.基本数据的长度(32位windows平台)char:1(有符号无符号同) short:2(有符号无符号同) int:4(有符号无符号同) long:4(有符号无符号同) float:4 double:8 二.对齐的作用和原因: 各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在原创 2009-10-23 19:21:00 · 4213 阅读 · 6 评论 -
const的修饰规则(const便捷记忆法)
刚才转载了一篇文章《情景分析“C语言的const关键字”》,csdn上也有一篇《Const用法小结》,可能很多人看了这两篇文章之后就对const绝望了,太复杂了。其实const并不复杂,它是有规则的,不然设计语言的语法就不好弄了(大家看一下编译原理就好理解了)。下面就说一下我对const的理解:我觉得,语言里面的关键字,都有一个修饰域(即这个关键字修饰那块范围),还有一个修饰方向(即从那里开始原创 2009-10-20 23:43:00 · 7086 阅读 · 12 评论 -
c中如何打印函数调用堆栈? - C/C++ - ChinaUnix.net
导读: 试验了一下,好像只能打印出地址,但是有函数名更方便些在11楼的提示下在网上找了篇文章,自己裁减了一下[Copy to clipboard] [ - ]CODE://funstack.c#define _GNU_SOURCE#include #include #include #include #include #include #include #if defined(RE原创 2008-04-11 23:47:00 · 313 阅读 · 0 评论 -
读"U盘小偷"有感 http://hi.baidu.com/sudami/blog/item/c53b3eec4a019cd22e2e217b.html
嘿嘿,今天终于有时间学习自己喜欢的东西了,在kanxue里看到一篇关于U盘小偷的文章:bbs.pediy.com/showthread.php读了其源码,学到一些东西: (1) 判断移动设备的插入/拔出转载 2008-01-18 22:00:00 · 3181 阅读 · 0 评论 -
GRETA 正则表达式库
导读: ..:: Greta ::.. [原创文章,转载请保留或注明出处:http://www.nk975.com/sswater/zh/greta/index.htm] GRETA 为 C++ 提供了兼容 Perl 5 的正则表示支持。GRETA的主页位于:http://research.microsoft.com/projects/greta/。今天,我们并原创 2007-12-11 13:12:00 · 1408 阅读 · 0 评论 -
regex.c 和 regex.h [在windows下没带有还真不好找] - powered by CLQ工作室!
导读: regex.c 和 regex.h [在windows下没带有还真不好找][点击下载] regex.c 和 regex.h [在windows下没带有还真不好找]本文转自 http://www.newbt.net:8022/read.csp?tid=1551&fpage=1原创 2007-12-11 13:15:00 · 7580 阅读 · 4 评论 -
C开发CGI以及sqlite数据库http://www.liniu.cn/post/c-cgi-sqlite.html
台湾的地震把海底光缆弄断了,现在上外国网几乎连不上。blogger也连不上,load下来一个title就不动了。还好Gmail可以用,可以用来发布blog,不过我的blog网站在国内blogger的服务器能发布进来么?天知道。这几天在写C程序,很多资料都要到国外站点查,现在全都不能查了,郁闷。现在在用C写CGI,其实C很强大的。完成的CGI的也不比perl复杂,主要就是C的字符处理函数比较转载 2008-02-29 22:28:00 · 4217 阅读 · 0 评论 -
Turbo C为用户提供了一个功能很强的画图软件库http://kcliu.nyist.net/ts4.htm
图形程序运行的条件Turbo C为用户提供了一个功能很强的画图软件库,它又称为BorLand图形接口(BGI),它包括图形库文件(graphics.lib),图形头文件(graphics.h)和许多图形显示器(图形终端)的驱动程序(如CGA.BGI、EGAVGA.BGI等)。还有一些字符集的字体驱坳程序(如goth.chr黑体字符集等)。编写图形程序时用转载 2007-11-23 15:18:00 · 2047 阅读 · 0 评论 -
[分享]C标准库及TC函数详解graphics.h http://bbs.yesky.com/bbs.php?url=http://bbs.yesky.com/viewthread.php?tid=2090892&pid=2131523
graphics.h @函数名称: getarccoords函数原型: void far getarccoords(struct arccoordstype far *coords)函数功能: 得到最后一次画圆弧的坐标函数返回:参数说明: coords-使用函数arc()画圆弧的坐标,该结构如下: struct arccoordstype{转载 2007-11-23 15:09:00 · 6004 阅读 · 0 评论 -
从函数指针到代理(C#代理入门)
// c中的函数指针,可能更好理解#include "stdafx.h"#include "stdio.h"#include "stdlib.h"int (* Test) (int l); //定义函数指针//以下定义了两个处理函数,程序会根据情况调用不同的过程int Add(int t){ return t+ t;}int Mut(int t){ return t*t;}转载 2007-11-23 14:49:00 · 1209 阅读 · 0 评论 -
C语言的窗口式图形界面设计——自带汉字环境的应用软件编程http://bbs.51cto.com/thread-63947-1-1.html
来源版块: C/C++压缩包内文件格式: 文本内容附件来源: 互联网运行平台: Windows平台是否经本人验证原创 2007-11-15 19:46:00 · 3770 阅读 · 1 评论 -
C语言的窗口式图形界面技术http://www.hsip.cn/soft/3/2006/1D7888785909.html
本说明中包括在《C语言的窗口式图形界面技术》付梓之后对HANENV系统的最新修改。 我们为HANENV系统增加了一个新的输入法模块:双拼拼音模块,包括全拼双音、双拼双音和多字词的词组输入法。新的输入法模块为_SYmode,其使用方法和原来的拼音输入法类似。首先在应用程序的首部使用下列语句安装双音模块: -,C-C++,其他/Other systems原创 2007-11-15 19:45:00 · 3021 阅读 · 0 评论 -
如何在C语言中巧用正则表达式
导读: 如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。由于它可以极大地简化处理字符串时的复杂度,因此现在已经在许多Linux实用工具中得到了应用。千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。标准的C和C++都不支持正则表达式,但有一些函数库可以辅原创 2007-12-11 13:14:00 · 890 阅读 · 0 评论 -
DEELX - Regexp - 正则表达式引擎
导读: DEELX 是一个在 C++ 环境下的与 Perl 兼容的正则表达式引擎。是 RegExLab 开展的一个研究开发项目。基本特点:支持与 Perl 兼容的正则表达式语法。 支持 IGNORECASE, SINGLELINE, MULTILINE 等常见匹配模式。 兼容性强,能在 vc6, vc7, vc8, gcc, Turbo C++ 等大多数 C++ 环境编译。原创 2007-12-11 13:18:00 · 1370 阅读 · 0 评论 -
如何在VC中汇编,调用Nasm编写的函数
导读: 我们一般会使用汇编来编写程序中效率瓶颈部分, 而这又包括两种方法, 一是采用内联汇编, 这是十分简洁方便的一个方法, 我们可以不必考虑如寄存器保护, 函数参数退栈之类繁琐的问题, 但其缺点是可移植性不强, 影响代码风格等. 而另一个就是本文要讲的, VC链接纯汇编函数.好,言归正传, 我们开始 一,工具 1) VC++2003, 本文所讲的操作都是基于此版本. 2)原创 2008-03-22 01:12:00 · 1844 阅读 · 0 评论 -
Before main() 分析
导读: 本文分析了在main()之前的ELF程序流程,试图让您更清楚的把握程序的流程的脉络走向。 从而更深入的了解ELF。不正确之处,还请斧正。 ★ 综述 ELF的可执行文件与共享库在结构上非常类似,它们具有一张程序段表,用来描述这些段如何映射到进程空间. 对于可执行文件来说,段的加载位置是固定的,程序段表中如实反映了段的加载地址.对于共享库来说,段的加 载位置是浮动的,位转载 2008-04-08 18:45:00 · 1719 阅读 · 0 评论 -
C语言版的磁盘文件分片归并排序函数
导读: 这是一个很老的的C函数,用来实现大的磁盘文件排序。在以前DOS操作系统下,对磁盘文件的排序一般有3种方法:1、将磁盘文件装入内存排序,将排序结果保存到新的文件,这适用于很小的(64K以内)、不需要经常索引的文件;2、对磁盘文件按关键字进行分块排序后,形成一个索引文件。块的大小一般为512K,常采用B+树或者B-数算法,这种方法适用于需要经常索引的磁盘文件,如DBF文件;3、把磁原创 2008-01-05 23:50:00 · 1369 阅读 · 0 评论 -
ANSI C中取得结构体字段偏移值的惯用法
导读: 假设在ANSI C程序中定义了一个名为MyStruct的结构类型,其中有一个名为MyField的字段,如何取得它在结构体中的偏移? typedef struct MyStruct_tag { // some fields ... long MyField; // other fields ... } MyStruct; 最容易想到的方法应该与原创 2008-03-29 23:23:00 · 1266 阅读 · 0 评论 -
#pragma pack() 和sizeof
导读: 本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。 1、 sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type }; 对结构M原创 2008-03-29 22:17:00 · 759 阅读 · 0 评论 -
内存对齐与ANSI C中struct型数据的内存布局
导读: 当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一原创 2008-03-29 22:08:00 · 793 阅读 · 0 评论 -
关于C++ 字节对齐
导读: 考虑下面问题:(默认对齐方式) union u { double a; int b; }; union u2 { char a[13]; int b; }; union u3 { char a[13]; char b; }; cout cout cout 都知道union的大小取决于它所有的成员中,占用空间最原创 2008-03-29 22:05:00 · 1271 阅读 · 0 评论 -
用C语言模拟面向对象编程(上)
导读: 用C语言模拟面向对象编程 虽然我接触计算机已经有将近一年了,但一直以来我不愿意写技术方面的文档,因为所谓的“技术”就是照着做得东西, 即使可能遇到一些难题,到网上搜索一下就可以解决,不值得把网上长篇累牍的文档复制粘贴到这里来。即使是自己写,也是写些别人已经解决过的东西。所以不论是数学,还是计算机,在这里我没有写过那种简单搬运知识的文章。 但即使再纯粹的技术,弄得时间长了原创 2008-01-01 23:18:00 · 10713 阅读 · 0 评论 -
对一个标准的输入/输出窗口临时重定向到一个文件
问题: 我如何才能把标准输入输出窗口暂时重定向到一个文件?解答: 为了暂时重定向标准的输出输出(如 printf 和 scanf 函数实现输入输出)到一个文件,你需要改变stdin 和 stdout 文件指针。下面两个例子显示具体实现方法:例1:这个例子把行信息打印到stdio窗口,然后再有一行到文件,接着又有一行到stdio屏幕。#include int main (int argc, char转载 2008-03-20 13:43:00 · 1219 阅读 · 0 评论