c++
彩虹-
-
堆和栈的异同
char *p="abc"与char p[]="abc"的不同问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include using namespace std;main(){ char *c1 = "abc"; char c2[] = "abc"; char *c3 = ( char* )malloc(3); c3 =转载 2010-07-11 08:47:00 · 1329 阅读 · 1 评论 -
获取png和jpg图片的宽和高
#include "stdafx.h"#define MAKEUS(a, b) ((unsigned short) ( ((unsigned short)(a))#define MAKEUI(a,b,c,d) ((unsigned int) ( ((unsigned int)(a)) #define M_DATA 0x00#define M_SOF0 0xc0转载 2017-12-27 17:34:22 · 3346 阅读 · 1 评论 -
一个lua 与c交互的小demo
#include #include #include "lua.h"#include "lualib.h"#include "lauxlib.h"//待注册的C函数。int add(lua_State* L){double a = luaL_checknumber(L, 1);double b = luaL_checknumber(L, 2);原创 2016-07-19 12:17:10 · 968 阅读 · 0 评论 -
__FILE__,__LINE__
注:本文转自蚂蚁跳楼博客园,感谢作者整理 前言:我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用转载 2016-06-30 13:26:12 · 338 阅读 · 0 评论 -
OpenGL: Configuring GLFW and GLEW in Visual C++ Express
This post shows how to configure Visual C++ Express 2010 with GLFW (version 3.0.1) and GLEW (version 1.9.0)[1].There are many tutorials on the internet that explains how to configureVisual C++ Exp转载 2016-04-18 16:42:17 · 1367 阅读 · 0 评论 -
typedef函数指针的用法(C++)
代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带转载 2015-06-12 16:16:09 · 430 阅读 · 0 评论 -
vs2012编译使用lua 5.2静态库
1.在官方网站下载Lua最新代码http://www.lua.org/download.html2.打开vs2012新建空白工程Test3.在解决方案中添加新的lib工程(WIN32->选择静态LIB 不要预编译头)lualib4.配置lualib工程a) 将lua源代码下的src文件拷入lualib文件夹下,并在工程中导入b) lualib工程属性转载 2015-04-24 15:37:27 · 1124 阅读 · 0 评论 -
vs 2010 将编译好的lua静态库运用起来
一直在用Lua写程序。但是对lua和c/c++交互的这一部分还是很感兴趣。由于本身不熟悉vs,所以在之前走了好多弯路。在看programming in lua 这本书时,lua与c交互这部分用代码实现看起来还是挺容易的,但是用vs真正用起来还是费了一点时间。下面就记录下来。首先拿到lua 52的源码,将lua编译成为Lua52.dll 和lua52.lib两个文件,一个是静态连接库,一个是动态原创 2015-04-24 15:28:39 · 1182 阅读 · 0 评论 -
虚函数的理解
#includeusing namespace std;class A{public: A(){ cout<<" A create\n";}; virtual ~A(){ cout<<"A delete\n";}; virtual void print(){ cout<<"This is A\n"; }};class B:public A{public: B(){ cout原创 2013-12-26 17:16:26 · 1041 阅读 · 0 评论 -
C++内存泄露 与野指针
下面给出理解描述: 指针变量作用域 被指向对象生命周期 造成的结果情况一 超出作用域 生命周期未结束 内存泄露情况二 在作用域内 生命周期结束 野指针情况三 超出作用域 生命周期结束转载 2014-01-03 10:51:20 · 1751 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2013-09-16 11:26:23 · 675 阅读 · 0 评论 -
构造函数定义为private 或者protected
将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法??? 提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“转载 2013-09-02 12:35:32 · 661 阅读 · 0 评论 -
使用const限定类的成员函数
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 const 关键字对成员函数的行为作了更加明确的限定:有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者参转载 2013-09-10 17:15:23 · 612 阅读 · 0 评论 -
c++虚函数
下面是对C++的虚函数这玩意儿的理解。 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。下面来看一段简单的代码转载 2013-08-29 14:51:48 · 490 阅读 · 0 评论 -
vs2012编译lua源码和产生c代码的动态链接库
最近一直在搞lua的源码编译,同时有需求将c代码编写成lua可以调用的动态链接库。尽管网上已经有好多人做过类似的工作了,但是我自己做起来还是感觉很吃力。今天花了一天时间终于搞定了。所以把今天踩的坑记录一下。首先编译lua的动态链接库,也就是传说中的lua.dll。参考文章。我的工程名为lua532。主要是将除了lua.h、lua.c、lualib.h、luac.c以外的所有后缀为.h和.c原创 2017-12-27 18:09:45 · 751 阅读 · 0 评论