![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 63
Kevin1993year
I want to be a computer professional .
展开
-
用__declspec,__cdecl,__fastcall,__stdcall等关键字修饰的函数的参数压栈方式
文章转载至:http://blog.csdn.net/feixiaoxing/article/details/7521004在编译器编译文件的时候,软件会根据程序本身的要求对函数作不同的压栈处理。有的压栈是按照从左到右进行压栈,有的压栈是按照从右到左进行压栈,有的不压栈、直接用寄存器代替,有的是需要被调用函数自身自己平衡堆栈。下面,我们就可以一个一个自己看看。首先,随便写一个函数,转载 2013-01-26 12:50:53 · 557 阅读 · 0 评论 -
我的第一个Win32可视程序
#include// 这个头文件定义了一些宏,用来处理当前程序所用的编码方式是 ANSI 模式 还是 Unicode 模式// 本程序默认是ANSI模式的编码方式//#include// 函数前向声明// 声明注册窗口函数int g_row=0,g_col=0;ATOM MyRegisterClass(HINSTANCE hInstance);// 声明创建窗口函原创 2013-01-27 18:52:10 · 513 阅读 · 0 评论 -
个人对rand()、srand()函数之间的关系及其内部实现原理的猜测
欢迎转载,转载请注明出处,谢谢//首先我们先只看rand()函数,有函数如:int main(int argc,char* argv[]){ int tmp=0; for(int i=0;i<50;++i) { // 获取 0~19 的伪随机数,存入tmp中 tmp=rand()%20; cout<<tmp<<'\t'; } cout<<endl; cin.get(原创 2013-01-28 19:50:38 · 1338 阅读 · 0 评论 -
教你改变const变量的值
呵呵,应该很多人做过这个事,好奇心来了没办法,不过可不能用在实际编程上哟不记得哪位大师说过:试图欺骗编译器的人终会自食恶果。不过要说明下,用const修饰的变量(这是一个假常量),本质上其实和未用const修饰的变量是没有差别的用const修饰变量后,只是编译器会检查是否对该变量进行了写操作,若检查出则会报错代码如下:#includeusing namespace std;原创 2013-01-28 22:42:32 · 1547 阅读 · 0 评论 -
详解flush函数——endl控制符和'\n'换行符的区别
endl控制符和’ \n’换行符都可以将光标移动到输出设备中下一行的开头处。但是,endl控制符还有另外的用途。当程序向输出设备中输出数据时,输出的数据先被存放在计算机缓冲区(Buffer)内。当缓冲区存满时,这些数据才真正地输出到输出设备。但是,如果输出的字符序列中出现了endl控制符,那么缓冲区内的所有数据将立即输出到输出设备,而无论缓冲区是否已经存满。因此,endl控制符的作用是转载 2013-01-29 16:05:15 · 2837 阅读 · 0 评论 -
C++中的指针悬挂问题(内存泄漏)
我们知道赋值运算符是双目运算符,如果用户没有自定义赋值运算的函数,那么系统将自动生成一个默认的对象赋值运算符使对象能够赋值,比如有两个对象c1(10,20),c2;执行赋值运算的时候:c2=c1;在这里,赋值运算的执行没有问题,它能够像基本数据类型的赋值一样赋值,然而,C++中提供给对象的默认的赋值运算符并不是万能的,看这么一个例子:#include"stdafx.h"#include转载 2013-02-04 16:40:34 · 1429 阅读 · 0 评论 -
sockaddr_in、sockaddr(SOCKADDR)、in_addr 的区别
sockaddr_in , sockaddr , in_addr区别struct sockaddr { unsigned short sa_family; char sa_data[14]; }; 上面是通用的socket地址,具体到Internet转载 2013-02-19 23:35:23 · 369 阅读 · 0 评论