随笔分类 -  C++ FuncCall

摘要:1.什么叫数组指针? 数组指针:一个指向一维或者多维数组的指针。 比如:int * b=new int[10];指向一维数组的指针b ; 注意,这个时候释放空间一定要delete [] ,否则会造成内存泄露,b 就成为了空悬指针。 int (*b2)[10]=new int[10][10]; 注意, 阅读全文
posted @ 2017-02-20 00:09 findumars 阅读(6751) 评论(0) 推荐(0)
摘要:多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始。但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的theApp对象,其执行顺序就在main函数之前。道理相通,顺理推下,能够想到:如果在main函数之前 阅读全文
posted @ 2017-02-20 00:05 findumars 阅读(3052) 评论(0) 推荐(2)
摘要:VPP 协议组件提供了许多的函数接口供开发者调用,同时也提供了很多的回调函数接口需要我们去实现,而由协议栈内部来调用。说白了,回调函数就是一个函数指针,协议栈通过一个函数指针,指向我们注册给回调函数接口的函数,达到函数由我们实现,他们调用的目的。 下面举一个简单的例子,让大家有一个更直接的认识: [ 阅读全文
posted @ 2017-02-02 07:01 findumars 阅读(467) 评论(0) 推荐(0)
摘要:C语言中,一个函数最多只能实现一个返回值。 [cpp] view plain copy int func (int b) { int a=5; if (a>b) return a; else return b; return 0; } [cpp] view plain copy [cpp] view 阅读全文
posted @ 2017-02-02 07:00 findumars 阅读(3234) 评论(0) 推荐(0)
摘要:C++代码如下:.h头文件 #pragma once#ifdef DLLTestAPI#else#define DLLTestAPI _declspec(dllimport)#endifint DLLTestAPI __stdcall add(int, int);int DLLTestAPI __c 阅读全文
posted @ 2017-01-05 07:29 findumars 阅读(1248) 评论(0) 推荐(0)
摘要:C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( 阅读全文
posted @ 2016-12-25 19:12 findumars 阅读(17199) 评论(0) 推荐(0)
摘要:摘要:主要谈谈vc里面函数调用汇编成汇编代码的情形,首先针对之前的一个小程序,说说vc编译器的优化。 例子程序: #include <iostream>using namespace std;int main(int argc, char* argv[]) { int i=10; int a = i 阅读全文
posted @ 2016-12-08 18:02 findumars 阅读(931) 评论(0) 推荐(0)
摘要:先看两个demo: 一.在类test1中调用函数print() ,把print()的函数指针传递给test1的函数指针参数 test1.h: [cpp] view plain copy #include <stdio.h> #include <iostream> using namespace st 阅读全文
posted @ 2016-11-06 06:37 findumars 阅读(3398) 评论(0) 推荐(0)
摘要:最近经常听到这个名词,以前也听到过,不过接触更多的是“线程安全问题”,而且本人也一直理解的是两个名字的含义是一样的。今天仔细总结一下这个名词相关的概念。 引用博文:可重入函数和不可重入函数 (http://www.cppblog.com/franksunny/archive/2007/08/03/2 阅读全文
posted @ 2016-10-18 17:33 findumars 阅读(669) 评论(0) 推荐(0)
摘要:我们知道,系统函数都是以DLL封装起来的,应用程序应用到系统函数时,应首先把该DLL加载到当前的进程空间中,调用的系统函数的入口地址,可以通过GetProcAddress函数进行获取。当系统函数进行调用的时候,首先把所必要的信息保存下来(包括参数和返回地址,等一些别的信息),然后就跳转到函数的入口地 阅读全文
posted @ 2016-08-26 20:11 findumars 阅读(2604) 评论(0) 推荐(0)
摘要:2010年的最后一天了,转载一篇自己认为还不错的文章与大家分享。希望对大家有所帮助。 一,回调函数我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢 阅读全文
posted @ 2016-08-26 17:10 findumars 阅读(2787) 评论(0) 推荐(1)
摘要:(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件: typedef void (__stdcall *Down 阅读全文
posted @ 2016-08-19 00:59 findumars 阅读(2328) 评论(1) 推荐(1)
摘要:大家熟知的C库函数printf函数就是一个可变参数函数,它是怎么实现的呢?不过他实现是有条件的,必须函数参数的入栈顺序为从右向左的顺序,也即函数的形参,在函数调用之前,必须是最右边的参数先入栈,并且参数都必须通过栈传递,以1个例子说明,如函数func(arg1, arg2,arg3),那么函数的堆栈 阅读全文
posted @ 2016-06-25 05:22 findumars 阅读(1564) 评论(0) 推荐(0)
摘要:注:与tr1::function对象结合使用,能获得更好的效果,详情见http://blog.csdn.net/this_capslock/article/details/38564719 回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数, 阅读全文
posted @ 2016-06-22 01:16 findumars 阅读(12250) 评论(0) 推荐(1)
摘要:在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少 阅读全文
posted @ 2016-04-05 18:18 findumars 阅读(3974) 评论(0) 推荐(0)
摘要:记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法。后来明白那不单是跳来跳去那样简单,而是一种高级的异常处理机制,在某些情况下确实很有用。 事实上,lon 阅读全文
posted @ 2016-04-05 17:59 findumars 阅读(1501) 评论(0) 推荐(2)
摘要:函数指针(全局函数/类成员函数)、函数对象(Function object)一. 函数指针类型为全局函数.#include "stdafx.h"#include <iostream>using namespace std;class TestAction;typedef void (*fp)(int 阅读全文
posted @ 2016-04-05 17:35 findumars 阅读(447) 评论(0) 推荐(0)
摘要:原文链接:http://blog.csdn.net/liigo/archive/2006/12/23/1456938.aspx 转载请注明出处:http://blog.csdn.net/liigo 昨天和海洋一块研究了下函数调用栈,顺便写两句。不足或错误之处请包涵! 理解调用栈最重要的两点是:栈的结 阅读全文
posted @ 2016-04-05 00:33 findumars 阅读(506) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/clover-toeic/p/3755401.html http://www.cnblogs.com/clover-toeic/p/3756668.html#3387242 阅读全文
posted @ 2016-03-21 18:22 findumars 阅读(243) 评论(0) 推荐(0)
摘要:上学期学习了汇编语言,并在操作系统实验中使用了汇编+C语言混合编程,中间也了解了一些C语言与汇编语言的对应关系。 由于汇编语言是底层的编程语言,各种函数参数都要直接控制栈进行存取,在混合编程中,要用汇编来调用C函数,当然就要知道参数的压栈情况了。 当知道C函数的参数压栈顺序是从右到左时,我觉得很奇怪 阅读全文
posted @ 2016-03-21 18:19 findumars 阅读(2687) 评论(0) 推荐(1)