
c/c++
文章平均质量分 63
wpj112
专业:自然语言处理
能力特长:c语言开发,操作系统,嵌入式开发,信息安全,信息检索。
现在:读自然语言处理方向研究生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言之精华总结(下)
C之诡谲(下) 三.类型的识别。 基本类型的识别非常简单: int a;//a的类型是a char* p;//p的类型是char* …… 那么请你看看下面几个: int* (*a[5])(int, char*); //#1 void (*b[10]) (void (*)()); //#2 doube(*)() (*pa)[9]; //#3 如果你是第一次看到转载 2012-06-19 08:33:21 · 289 阅读 · 0 评论 -
MFC的CString(VC6) 内存管理分析
CString 类是我们经常用到的类,所以有必要对它的内存管理模式分析一下.CString 内存管理的演变过程如下:VC5 单纯的使用new delete方法。因为字符串操作需要频繁调整内存大小.而采用C++操作符 new 与 delete 是没有与realloc相应功能的。结果就是每一次的改变内存大小都需要额外 增加一次拷贝操作。 而 new 与delete 在实转载 2012-07-08 12:47:18 · 335 阅读 · 0 评论 -
Visual C++开发工具与调试技巧整理
自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,在这里把Visual C++开发工具与调试技巧整理摘录如下,希望对大家有用,省去大家再去搜索的烦恼。 1.如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disabl转载 2012-06-26 12:40:02 · 155 阅读 · 0 评论 -
C程序的编译过程
编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 1.编译预处理 读取c源程序,对其中的伪指令(转载 2012-06-26 12:56:33 · 172 阅读 · 0 评论 -
VC++获得当前系统时间的几种方案
//方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { time_t t = time( 0 ); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",转载 2012-06-27 21:17:22 · 150 阅读 · 0 评论 -
C语言宏定义技巧(常用宏定义)
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. */ typedef unsigned转载 2012-06-28 13:03:59 · 220 阅读 · 0 评论 -
从C语言到汇编,从汇编到C语言
一、循环语句与发汇编后的机器语言 1、for循环 下面是一段C语言的代码,我们的目的是来看其反汇编的结果: int myfunction(int a,int b) { int c = a+b; int i; for(i=0;i { c = c+i; } return c; } 前面的反汇编暂时不理它,这里从for的地方开转载 2012-06-28 13:04:54 · 326 阅读 · 1 评论 -
VC中两个井号的妙用
TEXT("abc") //结果为L"abc"TEXT(xyz) //结果为Lxyz在头文件中是这样定义的#define __TEXT(quote) __TEXT##quote这两个井号是什么作用呢,通过查转载 2012-06-29 12:37:27 · 312 阅读 · 0 评论 -
函数指针
函数指针可能是最容易引起理解上的困惑的声明。函数指针在DOS时代写TSR程序时用得最多;在Win32和X-Windows时代,他们被用在需要回调函数的场合。当然,还有其它很多地方需要用到函数指针:虚函数表,STL中的一些模板,Win NT/2K/XP系统服务等。让我们来看一个函数指针的简单例子: int (*p)(char); 这里p被声明为一个函数指针,这个函数带一个char转载 2012-06-29 12:57:08 · 209 阅读 · 0 评论 -
c与c++的区别(从代码角度来看)
首先说说我写这篇日志的目的:对于大部分编程的人来说学c语言应该都从vc的(当然也有用tc的),但我觉得这里面有很大一部分朋友并不知道其实你一直用c++的编译器去编c和运行c语言的代码。当然c++是支持绝大部分的c的,但它们是不同的,之所以你能用那些编写和运行c语言代码没有发现有什么不对之处(其实你偶尔也会发现有时你的c代码运行时会怪怪的。) 1) 在C语言中,初始化一个字符原创 2012-06-29 12:58:00 · 445 阅读 · 1 评论 -
谈内存对齐问题
谈内存对齐问题一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不转载 2012-06-29 12:56:35 · 335 阅读 · 0 评论 -
coding中十大低级错误(java_c#)
1.前言本文根据java和C#开发人员在编码过程中容易忽视或者经常出错的地方进行了整理,总结了十大比较常见的低级错误点,与大家交流一下。2.十大低级错误1.不能用“==”比较两个字符串内容相等。2.对list做foreach循环时,循环代码中不能修改list的结构。3.数组下标越界4.将字符串转换为数字时没有捕获NumberFormatExc转载 2012-07-25 20:37:55 · 329 阅读 · 0 评论 -
strncpy函数与memcpy函数
函数名: strncpy 功 能: 串拷贝 用 法: char *strncpy(char *destin, char *source, int maxlen); memcpy 功 能: 从源source中拷贝n个字节到目标destin中 一个考字符串,一个拷贝内存内容strncpy转载 2012-08-23 10:54:56 · 317 阅读 · 0 评论 -
sizeof进行结构体大小的判断
typedef struct{ int a; char b;}A_t;typedef struct{ int a; char b; char c;}B_t;typedef struct{ char a; int b; char c;}C_t;void main(){ c转载 2012-06-26 12:38:44 · 173 阅读 · 0 评论 -
VC++各种文件作用
.RC:资源定义文件。 .RC2:资源定义文件,供一些特殊情况下使用。 其它后缀: .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。 .BMP:位图资源文件。 .BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源转载 2012-06-26 12:33:19 · 171 阅读 · 0 评论 -
经典!编写程序方法论
--本文只针对我自己的计算机系软件专业学习而论 ——————————————————————————一 谁不该读此文 ———— 我的文章一向极具针对性,从来不会为我所看不惯的东西而保守了笔墨的犀利。 此文自然也不会例外。以下几类人忌读:凡是想要去考研究生的人别读,此文具备的 思想意识是你们淤腐脑袋所不能理解,你们应该把这点时间花在死啃教科书上。喜欢 在计算机领域玩弄图形转载 2012-06-26 12:57:21 · 658 阅读 · 0 评论 -
C中的内存分配
一个C程序占用的内存可分为以下几类: (一) 栈 这是由编译器自动分配和释放的区域。主要存储函数的参数,函数的局部变量等。当一个函数开始执行时,该函数所需的实参,局部变量就推入栈中,该函数执行完毕后,之前进入栈中的参数和变量等也都出栈被释放掉。它的运行方式类似于数据结构中的栈。 (二) 堆 这是由程序员控制分配和释放的区域,在C里,用malloc()函数分配的空间就存在于堆上。在转载 2012-06-19 08:34:11 · 183 阅读 · 0 评论 -
网络编程基础
网络编程基础一、关于语言、编译器及系统我们知道,在计算机里面进行程序设计至少需要掌握一种程序设计语言。常见的程序设计语言包括C/C++、ASM、BASIC、Delphi、Perl等,你随便根据兴趣去学习一种语言都可以实现程序设计这个目的,这些语言并没有谁比谁更好的问题(这是一个理解问题,实际上一些语言应该说比一些语言更先进,比如可以说C++比C更先进,但不能说谁比谁好,每一种语言都是优转载 2012-06-19 08:59:28 · 179 阅读 · 0 评论 -
C语言之精华总结(上)
从接触,开始学习计算机也好几年了,一路走来,有很多的收获,也有不少的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你——天的力量。”所以我想记下一些带给我悲哀,带给我哭泣的程序人生。其实学习计算机的基础课程是非常重要的,离散数学,编译原理,转载 2012-06-19 08:31:52 · 434 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb;转载 2012-06-22 10:35:23 · 1012 阅读 · 0 评论 -
深入理解C语言指针的奥秘(上)
指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)in转载 2012-06-22 10:49:09 · 165 阅读 · 0 评论 -
深入理解C语言指针的奥秘(下)
指针和结构类型的关系 可以声明一个指向结构类型对象的指针。 例十一: structMyStruct { inta; intb; intc; } MyStructss={20,30,40};//声明了结构对象ss,并把ss的三个成员初始化为20,30和40。 MyStruct*ptr=&ss;//声明了一个指向结构对象转载 2012-06-22 10:50:17 · 193 阅读 · 0 评论 -
关于C++中函数指针的使用
关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一个转载 2012-06-22 10:52:23 · 156 阅读 · 0 评论 -
malloc和free的原理
一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用malloc分转载 2012-06-22 10:54:08 · 428 阅读 · 0 评论 -
c语言的可变参数
一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的 C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_转载 2012-07-05 12:47:14 · 253 阅读 · 0 评论 -
C语言学习之我见
首先每天的实践是必不可少的。而实践的题目则尽可能的有意思。就参考c-100吧,或者c语言的等级考试上面的题其实出的不错的你可以选任意一个你觉得能完成的每天去练习。除了写程序之外就是看程序,分析程序了。其实学习编程开始学是学语法呀,基本的流程控制,以及c语言的一些特殊特性(指针,宏等),这些运用熟悉之后则是你的逻辑思维能力,也就是你把你平时遇到的问题抽象出来,最终则是把它用程序给表达出来,而这个过程原创 2012-07-05 13:11:51 · 355 阅读 · 0 评论 -
高质量代码的演进之旅 (转)
写一个函数,完成内存移动,并为其写一个简单的测试用例来进行测试。 够简单的吧?有的同学很快就写出了答案,详见程序清单1与程序清单2。 程序清单 1 V0.1版程序void MyMemMove(char *dst,char *src,int count){ while(count--) {转载 2012-07-05 13:06:31 · 441 阅读 · 0 评论 -
VS.2005 中比较有用的快捷键
VS.2005 中比较有用的快捷键 (目前找到的最全的,所以转过来:1. Ctrl +] 检查括号匹配(在左右括号间切换)2. Shift + Home(End)选中从光标起到行首(尾)间的代码3. Alt+Shift+鼠标 选中自己圈中的长方块。4. F12转载 2012-07-06 13:03:53 · 262 阅读 · 0 评论 -
C++ string类(转载)
这个经常要用到的之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正转载 2012-08-23 10:32:13 · 529 阅读 · 0 评论