![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 62
Jeffrey-Heart
这个作者很懒,什么都没留下…
展开
-
const用法
constt的本质是伪常量,无法用于数组初始化,以及全局变量初始化,原因在于const仅仅限定变量一旦初始化后无法在直接赋值(const 只是限定一个变量无法直接赋值,但是可以间接赋值)。但是还是有可能被意外修改,例如间接赋值,并不是完全只读,所以并非真正意义上的常量,例如把局部const常量放在栈区,而不是静态区(静态区会一直存在),也不知代码区禁止修改#include#include原创 2015-01-23 20:02:16 · 296 阅读 · 0 评论 -
二分图最大匹配算法-匈牙利算法
#include#includeusing namespace std;int map[105][105];int visit[105],flag[105];int n,m;bool dfs(int a){ for(int i=1; i<=n; i++) { if(map[a][i]&&!visit[i]) {原创 2016-07-18 09:21:38 · 321 阅读 · 0 评论 -
C/C++assert 断言
一、动态断言assertassert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。#include原创 2015-01-22 20:53:41 · 5360 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex? 使用多线程其实是非常容易的,下面这个程序的主线程会创建了转载 2015-01-24 23:26:05 · 407 阅读 · 0 评论 -
windows下C语言多线程编程
_beginThreadex创建多线程解读一、需要的头文件支持 #include // for _beginthread()需要的设置:ProjectàSetting-->C/C++-->User run-time library 选择Debug Multithreaded 或者Multithreaded。即使用: MT或MTD。源码如下:转载 2015-01-24 23:29:40 · 3437 阅读 · 0 评论 -
Windows静态库和动态库的创建和使用
偶们在实际的编程开发中,经常会遇到运行时无法找到某个DLL文件或者链接时无法找到某个LIB文件。然后,我们就开始乱GOOGLE一下,然后将VS2005的设置改变一下,或许就Ok了,我们将别人开发的DLL或者LIB导入到我们的编程中,那么这些lib,DLL到底是什么呢?下面,偶就细细道来。 首先,偶们说第一个:静态链接库(Static Libary)偶们用VS2005做一个静态链接库先转载 2015-01-24 22:45:05 · 779 阅读 · 0 评论 -
函数指针
在c语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址(入口地址),所以函数名跟数组名很类似,都是指针常量。函数指针就是指向这个入口地址的指针变量,注意函数指针是一个变量将函数名改成(*指针名)就可以了形式1:返回类型(*函数名)(参数表) void (*pFun)(int); void glFun(int a){ return;} vo原创 2015-01-24 22:01:24 · 342 阅读 · 0 评论 -
c++中__declspec用法总结
“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、selectany、thread、property和uuid。1,_declspec(1转载 2015-01-24 21:40:29 · 416 阅读 · 0 评论 -
Linux 静态库、动态库
库是一种软件组件技术,库里面封装了数据和函数。库的使用可以使程序模块化。Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件)。Linux通常把库文件存放在/usr/lib或/lib目录下。Linux库文件名由:前缀lib、库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀。在程序中使用使用静态库和动态库时,他们载入原创 2015-01-24 18:13:12 · 627 阅读 · 0 评论 -
宏定义#号用法
#define S(#X) //自动给参数X转换为"X",转换为字符串#include#define S(X) system(#X)void main(){ S(calc);}原创 2015-01-23 19:26:12 · 476 阅读 · 0 评论 -
函数中省略号的意义和用法
某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的呢?C编译器通常提供了一系列处理这种情况的宏,以屏蔽不同的硬件平台造成的差异,增加程序的可移植性。这些宏包括va_start、va_arg和va_end等。 ---- 采用ANSI标准形式时,参数转载 2015-01-22 21:53:22 · 1426 阅读 · 0 评论 -
C_语法_宏定义define和函数的作用对比
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义: #define M转载 2015-01-23 14:30:34 · 441 阅读 · 0 评论 -
C/C++中关于struct内存对齐问题
题:struct st1{ struct st2{ int i; char c; char c;转载 2015-01-23 14:08:00 · 461 阅读 · 0 评论 -
规避重复包含
文件1.h#ifndef INFO#define INFOstruct info{ int num; char name[20];} ;#endif文件2.h#include "1.h"文件 main.c#include #include #include "1.h"#include "2.h"int main() { return 0;}原创 2015-01-23 20:55:32 · 272 阅读 · 0 评论 -
取n个数中第k大数
#include#include#includeusing namespace std;int random_partion(int *arry, int n){ time_t t; srand((unsigned)time(&t)); int index=rand()%n; swap(arry[index], arry[n-1]); //起到随机原创 2016-07-19 21:24:00 · 490 阅读 · 0 评论