_c/c++/汇编
文章平均质量分 66
普通网友
这个作者很懒,什么都没留下…
展开
-
6个变态的C语言写的Hello World
下面的六个程序片段主要完成这些事情:输出Hello, World混乱C语言的源代码下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello1.c #define _________ } #define ________ putchar #define _____原创 2009-05-26 22:45:00 · 2566 阅读 · 1 评论 -
va_list、va_start、va_arg、va_end的原理与使用
原文:http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义大家先看几宏.在VC++6.0的原创 2008-11-03 14:30:00 · 1672 阅读 · 0 评论 -
C++程序员学习JavaScript的三道槛
说实在的,JavaScript并不复杂,甚至有些简单。很多没有C、C++等编程基础的网页开发人员都可以很快掌握,而有这些经验的人反倒没那么容易。在C、C++中形成的有些概念和思维方式,在JavaScript开发中不仅没用,反而会产生误导。有几个问题确实曾给我带来过麻烦。一是类型在C和C++中,数据都有类型,包括基本的数据类型和用户定义的类型,如类、结构体等。如果你以为JavaScr原创 2008-10-27 20:54:00 · 1834 阅读 · 0 评论 -
usb鼠标驱动注解及测试
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 下文阴影部分为注解。 一、 驱动加载部分 static int __init usb_mouse_init(void){ int retval = usb_register(&原创 2008-10-26 19:22:00 · 2053 阅读 · 1 评论 -
统计文本中各个字符出现的次数
基于huffman编码的文本数据压缩中的第一个阶段需要统计一个文本文件中的各个字符出现的次数,以作为字符的权值进行编码 在统计的时候我用一个结构体数组来存储文本中出现的各个字符及其出现的次数 定义如下 struct ChrCount { char chr; int count; } CharCount[128]; 下面是原创 2008-10-28 19:43:00 · 5310 阅读 · 1 评论 -
VC 6.0 下搭建 wxWidgets 开发环境
和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 WindowsCE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。详情请见 wxWidgets 的官方网站原创 2008-10-11 18:49:00 · 2098 阅读 · 0 评论 -
找不到“windows.h”之谜
今天要运行一个简单的C++程序,如下://C++ code 让任务管理器的CPU使用产生一条正弦曲线图#include #include "stdlib.h"#include "math.h"#include const double SPLIT = 0.01;const int COUNT = 200;const double PI = 3.14159265;const int INTE原创 2008-10-27 20:52:00 · 6443 阅读 · 0 评论 -
人民币读数(转中文大写,C/C++)
//早年写的代码,功能很简单,以效率为主要目的 #include #include const char mnUnit[3][2]={"分","角","元"}; const char OtherWords[2][2]={"整","负"}; const char hzUnit[8][2]={"拾","佰","仟","万","拾","佰","仟","亿"}; const char hzNu原创 2008-09-23 02:55:00 · 2393 阅读 · 0 评论 -
汇编与反汇编之小技巧
大家都知道,对于位于当前调试目标中的指令,可以使用WinDBG的u命令进行反汇编。u命令的参数是要反汇编代码的地址值或者符号,如果不指定,那么WinDBG会使用当前程序指针寄存器所指向的代码,例如:0:001> untdll!DbgBreakPoint:7c901230 cc int 37c901231 c3 ret如原创 2008-07-08 23:47:00 · 2256 阅读 · 0 评论 -
C++中数值--字符串间的转换
编写代码时经常需要在数值(int, long, float, double ...)与字符串间的相互转换。C/C++中相关的转换方法主要有如下几种: (一)、使用CRT库中的转换函数族。_itoa, _itow 及其反转换 atoi, _wtoi_ltoa, _ltow 及其反转换 atol, _wtol_ultoa, _ultow_ecvt, _fcvt, _gcvt 及其反转换 _ato原创 2008-09-18 20:23:00 · 1765 阅读 · 0 评论 -
这个函数用来登录QQ2005
/* 登录代码*/ int qq_login( struct qq_client qc, /* 客户端数据结构*/ const char*id, /*字符形式的QQ号*/ const char pass, /*密码*/ unsigned char login_mode, /* 登录模式,0x0a= 正常,0x28= 隐身*/原创 2008-06-24 20:56:00 · 1667 阅读 · 0 评论 -
把c++学得很牛,有用吗?
最近真的很郁闷。作为一个学习计算机和c++的人,听到这句话之后,真的陷入了深深的迷茫之中,想到这里和大家一起讨论一下。 事情是这样的。前两天我们这组织高年级的同学向我们传授考研的经验。有个家伙是自动化专业的,今年刚刚考上北航的研究生,一副牛比哄哄的样子。传授什么所 谓的考研经验也就算了,他还顺手把我们一群学计算机的都给“贬”了一通,着实让我相当不爽。他说:“不是我说你们这些学计算机的原创 2008-06-19 23:27:00 · 5786 阅读 · 6 评论 -
主流编程语言优劣考
主流编程语言优劣考 前言 本文的目的并非是想挑起语言之争,而是希望通过客观地分析每一种主流语言的能力,辨明其长短,让程序员能够扬长避短,有效地使用各种语言。让各种语言能够各安其位,为你更好的服务。程序员应当成为语言的主人,而不是语言的奴隶。原创 2008-06-10 21:57:00 · 1743 阅读 · 0 评论 -
经典文章-API Hook Revealed
原文: Intercepting Win32 API calls has always been a challenging subjectamong most of the Windows developers and I have to admit, its been oneof my favorite topics. The term Hooking represent原创 2008-11-18 21:22:00 · 4101 阅读 · 4 评论 -
我为何不看好D语言
最近发现关于D语言的消息不少,看来他也在逐步被人关注。我第一次接触到D语言的时候是在大约5年前,差不多和我接触到Lua语言同时,我当时对Lua语言下结论是这个是好东西,将来有前途,所以我翻译了Lua的手册;当时我认为D语言也绝对是个强劲的工具:D语言是由DigitalMars公司开发的编程语言,起因是为了改进C++。它与C二进制兼容(不完全),可编译为本地码,有GC也可手动管理内存,语法上原创 2008-11-21 02:25:00 · 5052 阅读 · 2 评论 -
#pragma once 和#ifndef ... #define ... #endif 比较
C++中防止头文件被多次include 的常见方式有:1) 用#ifndef ... #define ... #endif 宏 #ifndef __MYHEADER_H__#define __MYHEADER_H__ // Here is my class ... #endif 2) 用 #pragma once#pragma once// Here is my class ... 建议使原创 2009-05-07 22:43:00 · 1766 阅读 · 1 评论 -
漂亮的排序算法:7种排序算法的内存状态演示
昨天我突发奇想,写了几段Mathematica代码,生成了各种排序算法的内存变化图。图中每一个新的横行都表示数组的一次更新,数字大小用颜色来表示。你可以直观地看到这些算法是如何把乱序数组一点一点变为有序的。效果还是很令人满意的,不少算法的内存轨迹都相当美观,相当有艺术性。图很大,我就不在首页上显示了,大家点“查看更多”看图吧。原创 2009-04-29 02:38:00 · 2550 阅读 · 1 评论 -
趣题:寻找策略使得总有一人猜出他背上的数
正在上虚词研究课,好友Chain发来短信说,北大BBS化学学院版上发了一道很有趣的谜题,已经上十大热门话题第三了。我也是第一次看到这个题目,和大家分享一下。话说周一某实验室有16名同学,有一天*老师把大家叫到一起说:下周来做实验的时候,我会给你们每个人背后贴一张纸,纸上的数字从1到16都有可能,不同同学背后的数字可以重复。你们每个人可以看到别人背上的数字,但不能看到自己的数字。贴纸之后你们原创 2009-04-29 02:27:00 · 1994 阅读 · 5 评论 -
C/C++中一个简单的enum手法(idiom)
今天写程序的时候,又用到这个idiom了,于是顺便贴出来。这个idiom蛮简单的,估计很多人都用过。今天主要是贴出来给新手参考(老手们就甭费时看此帖了)。 为了说明这个手法具体该咋用,咱举一个简单的例子来说事儿。比方说要开发一个网络程序,其中需要统计各种网络协议的数据包数量。 ★版本1 假设一开始只需要处理HTTP和FTP两种协议。有些同学不假思索,立即会声明如下两个整数用于统计:i原创 2009-04-29 00:51:00 · 1814 阅读 · 0 评论 -
我目前所见过的最难的IQ测试题
网友Qian Yongchao发来邮件说,他在阅读当前正大红大紫的一本书叫做Outliers。书中谈到IQ测试时,作者提到了Ravens Progressive Matrices测试法。这是一系列从易到难的题目,一般有48道题。为了说明这种测试可以有多难,作者给出了整个测试的最后一道题,这道题目即使作者自己也不知道该怎么做。我在网上搜索了一下,确信书上印的题目是错误的。其实,那道题就是i原创 2009-04-29 02:41:00 · 5309 阅读 · 2 评论 -
关于大学生如何进行编码规范的火拼
肇事者:吉首大学 邓嘉(C/C++学生)男主角:肖舸,韩卫平配 角:赵洪亮 陈建树 周海鑫事情起因:老肖经常被同学问代码的事情,可这些代码在他看来简直是“太难看懂”了,老紫竹的家所以有此感慨。经过: 可不可以拜托各位一件事情? 很多同学喜欢把代码拿上来,询问。 不过,肖老师是程序白痴,看不懂同学们的代码。 举个例子 这是某位同原创 2009-04-26 16:31:00 · 2650 阅读 · 0 评论 -
原始套接字
这两天在看syslog-ng的配置文件,看到unix-stream和unix-dgram两个选项,于是想知道SOCK_STREAM和 SOCK_DGRAM两种socket连接方式的区别,有篇好文章:大多数程序员所接触到的套接字(Socket)为两类: (1)流式套接字(SOCK_STREAM):一种面向连接的Socket,针对于面向连接的TCP服务应用; (2)数据报式套接字(SOCK原创 2009-04-05 13:40:00 · 2069 阅读 · 0 评论 -
C++多线程调试和测试的注意事项
在上次的帖子聊了C++多线程的跨平台问题,后来感觉意犹未尽。今天顺便说一下开发C++多线程应用程序时,有关调试和测试的一些注意事项。下面这些注意事项主要是针对C++,不过有些对于其它的语言也适用。 ★关于设置断点和单步执行 很多同学非常依赖于调试器的断点功能和单步功能。这在单线程情况下倒还好(不过有些单线程但涉及GUI的程序,也会有点麻烦)。至于多线程程序的调试,这两种手段简直就是噩原创 2009-04-18 16:46:00 · 2032 阅读 · 0 评论 -
glib与glibc的区别
今天在安装syslog-ng 3.0的时候说需要glib 2.12.3 以上的版本,想起还有一个glibc库,好像不太一样,上网搜了一下:原文:http://hi.baidu.com/yuanfang/blog/item/85acd788af41c191a5c27208.htmlGLib是Gtk +库和Gnome的基础。GLib可以在多个平台下使用,比如Linux、Unix、Windo原创 2009-04-05 13:48:00 · 3132 阅读 · 0 评论 -
C程序员最常用哪些工具软件
C程序员最常用哪些工具软件?原文地址:http://topic.csdn.net/u/20081211/01/00099275-605f-4a66-a16c-d8fe3eaf7324.html人常说,好工匠要有好工具。荀子说:君子生非异也,善假于物也。一个好的程序员也必然有用得最顺手的工具软件。 做C程序员也有两年了,从最初只知道TC,VC,到现在已经离不开很多软件。 下面原创 2008-12-26 16:23:00 · 2653 阅读 · 1 评论 -
学习C的几点体会
1 C 都是对内存的操作, 并且通过传值和传址的方式来进行提高效率,从而让程序在执行中间减少不必要的开销 2 由于C的自由程度非常大,从而在用的人不太熟悉,或者说考虑不周全的时候,会引起整个系统的崩溃3 每次取到的值都需要放在一个内存里面,然后用一个指针来进行记录所放的位置,通过控制指针来操作对应的内容4 好处是对于缓冲这种东西,C写的足够好的时候,效率和稳定都能得到绝对的原创 2008-12-10 16:36:00 · 1924 阅读 · 1 评论 -
从C++程序员转到Java需注意的十二个方面
Java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个Java解释器最终执行这些代码。这其中没有连接的过程;解释在需要的时候动态的加载一些类;2.Java是完全面向对象的Java 是一种完全面向对象的语言。这意味着你对任何一个Java对象所做的动作都是通过一个方法实现的。第一点就是,再也没有没有主函数这样的孤立的东西了。取而代之的是,你必须开始用一个对象的看法看待一原创 2009-01-15 22:07:00 · 1814 阅读 · 0 评论 -
VC小技巧20个
一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); 三、关闭计算机 OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结原创 2008-06-06 01:13:00 · 1565 阅读 · 0 评论 -
动态规划与排列组合
动态规划与排列组合By 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba)TopLanguage(http://groups.google.com/group/pongba) 像所有的新手一样,对一种算法思想的理解需要经历从肤浅(流于表面形式)到逐渐触摸到本质的过程。为什么说"逐渐"触摸到本质,是因为很多时候你并不确定一个解释是不是最原创 2008-06-07 00:21:00 · 1879 阅读 · 0 评论 -
c c++ include机制简述
1.引言做c/c++编程的对#include指令都不会陌生,绝大多数也都知道如何使用,但我相信仍有人对此是一知半解,C:#include C++:#include 表示包含C/C++标准输入头文件。包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等等都可以2.名词解释preprocess预处理原创 2008-08-26 20:53:00 · 1761 阅读 · 0 评论 -
碎片图像无缝拼合技术的VC++实现
一、 引言 在 测绘、文博等行业经常会遇到这样一种情况:观测对象比较大,为保证分辨率又不能将其全部照下,只能进行局部照相,事后再将这些局部照相的重合部分去掉,拼 合成一幅完整的图像。以前多采用手工拼合,误差较大,往往不能很好的实现无缝拼原创 2008-03-14 13:25:00 · 1721 阅读 · 0 评论 -
网络编程——断点续传和多线程下载模式
概述 在当今的网络时代,下载软件是使用最为频繁的软件之一。几年来,下载技术也在不停地发展。最原始的下载功能仅仅是个“下载”过程,即从WEB服务器上连续地读取文件。其最大的问题是,由于网络的不稳定性,一旦连接断开使得下载过程中断,就不得不全部从头再来一次。 随后,“断点续传”的概念就出来了,顾名思义,就是如果下载中断,在重新建立连接后,跳过已经下载的部分,而只下载还没有下载的原创 2008-03-11 23:09:00 · 3293 阅读 · 0 评论 -
C++网络开发包ACE环境的配置与调试
ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。我的系统环境是:Win2k pro(sp4)、VC6.0 (sp5)过一阵,我的主页上要开论坛,并设VC专区,欢迎大家上去交流h原创 2008-03-08 12:29:00 · 1701 阅读 · 0 评论 -
一份英文面试题
分数是没有的,东西是有趣的。 C++ Questions Part 1: Basic Questions Question 1: Which of the following is not automatically generated by the compiler? a) default constructor b) copy constructor c)原创 2008-03-06 13:56:00 · 1822 阅读 · 0 评论 -
C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
从网络中读取C的无符号int,short,byte字节数组,相应转换成java的long,char,short short anUnsignedByte = 0; char anUnsignedShort = 0; long anUnsignedInt = 0; int firstByte = 0; int secondByte = 0; int thir原创 2008-03-05 16:57:00 · 3106 阅读 · 0 评论 -
C++的营养——swap手法
C++的营养莫华枫 上一篇《C++的营养——RAII》中介绍了RAII,以及如何在C#中实现。这次介绍另一个重要的基础技术——swap手法。 swap手法 swap手法不应当是C++独有的技术,很多语言都可以实现,并且从中得到好处。只是C++存在的一些缺陷迫使大牛们发掘,并开始重视这种有用的手法。这个原本被用来解决C++的资源安全和异常保证问题的技原创 2008-02-27 13:13:00 · 1824 阅读 · 0 评论 -
为什么C程序一定要从main开始执行???
main只是开发工具所规定的一个特殊函数名称而已。它既不是程序的入口,也不是必须要有的函数。 程序的入口点记录在可执行文件中的一个数据,该数据标明程序从哪个位置开始执行,这个数据是连接程序的时候由link.exe确定的,可以把程序的入口点 指定为任意函数,甚至可以自己编辑可执行文件修改程序的入口点。在默认情况下,link.exe会连接开发工具中带有的一个obj文件,并设置该obj中 的固定函原创 2008-02-23 12:03:00 · 3531 阅读 · 0 评论 -
浅析C++中虚函数的调用及对象的内部布局
在我那篇《浅析C++中的this指针》中,我通过分析C++代码编译后生成的汇编代码来分析this指针的实现方法。这次我依然用分析C++代码编译后生成的汇编代码来说明C++中虚函数调用的实现方法,顺便也说明一下C++中的对象内部布局。下面所有的汇编代码都是用VC2005编译出来的。虽然,不同的编译器可能会编译出不同的结果,对象的内部布局也不尽相同;但是,只要是符合C++标准的编译器,编原创 2008-02-13 10:34:00 · 1529 阅读 · 0 评论 -
实用小代码之内存泄漏检测
相信很多人在用C语 言编写程序时,常常会用到动态内存分配的函数。而使用这样的函数,往往会一不留神就造成内存泄漏。虽然说世面上有很难多检查内存泄漏的工具,功能也很强 大。不过我平时用的简单检测方式是使用我这里介绍的这三个函数。相对来说,还是比较不错的,也是一种解决内存泄漏问题的方法之一吧。int *_mem_check(void)...{ static int c=0; return(&原创 2008-01-31 11:31:00 · 1892 阅读 · 0 评论 -
Bug分析之0减1到底等于几
0减1等于几?小学生都知道,而计算机却常干傻事。本文介绍一种和数据类型相关的编程Bug,分析Bug现象和产生原理,做为小小的Debug经验与大家分享。 前几天用VC写了个程序,程序中有个遍历列表的功能。使用vector作为列表的数据结构,用一个整型数CurIndex记录当前记录。当用户点击向前按钮时,CurIndex减1,如果CurIndex已经是第一个元素了,就让原创 2008-01-25 09:43:00 · 10152 阅读 · 1 评论