C函数指针的用法】的更多相关文章

typedef 函数指针的用法   在网上搜索函数指针,看到一个例子.开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它.其实很多时候都是这样,如果每次到难一点的内容,总想着下次我再来解决它,那就永远也学不到东西. 后面那个例子加了注释,是我对这种用法的理解,希望对新手有所帮助. 进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字. 不同点:typedef 在编译时…
转自:http://www.cnblogs.com/shenlian/archive/2011/05/21/2053149.html typedef 函数指针的用法 在网上搜索函数指针,看到一个例子.开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它.其实很多时候都是这样,如果每次到难一点的内容,总想着下次我再来解决它,那就永远也学不到东西. 后面那个例子加了注释,是我对这种用法的理解,希望对新手有所帮助. 进入正文: 代码简化,…
代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字. 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换. 用法一: typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int 在分析这种形式的定义的时候可以用下面的方法: 先去掉typedef 和别名, 剩下的就是原变量的类型…
[目录] 基本定义 c 函数指针使用举例 c++ 函数指针使用举例 函数指针作为函数参数 函数指针作为函数返回值 函数指针数组 typedef 简化函数指针操作 c语言函数指针的定义形式:返回类型 (*函数指针名称)(参数类型,参数类型,参数类型,…); c++函数指针的定义形式:返回类型 (类名称::*函数成员名称)(参数类型,参数类型,参数类型,….);     以下代码编译环境:codeblocks with gcc in win 7 c语言函数指针使用举例: #include <stdi…
1.最简单的用法: #include <cstdio> int (*p)(int);//定义一个函数指针变量p(下面的f其实是一个常量函数指针) int f(int x) { printf(); ; } int main() { p=f; p();//等价于f(2) ; } 还有另一种对应写法,不过实在不喜欢,可以忽略.简单来说,就是f()与(*f)()实现相同的功能,p指针也不例外.我不是很明白为什么c语言允许这样写,干脆就不记这种写法了. 2.第二种用法: #include <cst…
今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类.这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中.子类只需注册需要并发执行的入口函数即可在单独线程中执行.最终目标是,继承的业务逻辑类外部调用时有两个接口可选,调用syncRun同步执行:调用由引擎自动生成的asyncRun就异步执行.最终自动生成asyncRun的模板基类没能实现,主要原因是mingw对this处理的太有问题了!!原本以为编译器问题,后来才知道成员函数指针和this指针如此特殊…
函数指针是一种在C.C++.D语言.其他类 C 语言和Fortran 2003中的指针.函数指针可以像一般函数一样,用于调用函数.传递参数.在如 C 这样的语言中,通过提供一个简单的选取.执行函数的方法,函数指针可以简化代码. 函数指针只能指向具有特定特征的函数.因而所有被同一指针运用的函数必须具有相同的参数和返回类型. 本文地址:http://www.cnblogs.com/archimedes/p/3669872.html,转载请注明源地址. 下面的代码说明了一种初始化函数指针的方法: in…
类成员函数指针 类成员函数指针(member function pointer),是C++语言的一类指针数据类型,用于存储一个指定类具有给定的形参列表与返回值类型的成员函数的访问信息. 目录 1 语法 2 语义 3 类成员函数指针的用途 4 例子 4.1 未知继承的成员函数指针例子 5 参考文献 语法 使用::*声明一个成员指针类型,或者定义一个成员指针变量.使用.*或者->*调用类成员函数指针所指向的函数,这时必须绑定(binding)于成员指针所属类的一个实例的地址.例如: struct X…
include<stdio.h> typedef int (*Cal)(int a,int b);//定义一个函数指针,第一个int是指向函数的返回值的类型,后面括号里面的两个int是指指向函数的参数类型 int Add(int a ,int b) { int result=a+b; return result; } int Sub(int a ,int b) { int result=a-b; return result; } int main() { Cal cal1=&Add;/…
判断一个32位应用程序是否运行在x64系统下,可以使用下面的代码: BOOL IsX64System() { BOOL bIsWow64 = FALSE; typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS)(HANDLE, PBOOL); LPFN_ISWOW64PROCESS pfnIsWow64 = NULL; pfnIsWow64 = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle(_T("kern…
 先看函数指针 int func2(int x); /* 声明一个函数 */ int (*q2) (int x); /* 声明一个函数指针 */ q2=func2;    /* 将func函数的首地址赋给指针f */ int c=(*q2)(3); //3可以为任意实参   上面4句基本说明了函数指针的用法: 函数指针是指向函数的指针,确切的说,是指向特定类型函数的指针(函数与函数指针 类型要匹配) 函数指针用来保存函数首地址,即可以通过该指针访问函数.函数指针相当于取别名. 函数指针可以指向一…
1.const char *p,char const *p,char * const p 对于C++而言,没有const * 修饰符,所以,const只可以修饰类型或者变量名.因而const char *p,char const *p是等价的. const char *p = "abc"; 意义为:不可以改变p所指向的内容,即*p不可以改变,*p = "bcd";是错误的. char a,b; char * const p = &a; 意义为:不可以改变p的…
  这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础 本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in-c-struct.html,转载请注明源地址. 引言 指针是C语言的重要组成部分, 于是深入理解指针并且高效地使用指针可以使程序员写出更加老练的程序.我们要记住指针是一个指向内存地址的变量.指针可以引用如int.char……常见的数据类型,例如: int * intptr; // 声明一个指向整型…
摘要bycrazyhacking:        typedef 是定义了一种"函数指针"类型,可以再声明很多变量.函数指针的定义是定义了一个变量. int max(int x,int y){ return(x>y?x:y); } 1.定义函数指针类型: typedef int (*fun_ptr)(int,int); 2.声明变量,赋值: fun_ptr max_func=max; 进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,…
首先介绍大家比较熟悉的typedef int i;//定义一个整型变量i typedef myInt int: myInt j;//定义一个整型变量j 上面介绍得是我们常用的比较简单的typedef的用法,下面首先介绍一下函数指针. 函数指针的形式: 形式1:返回类型(*函数名)(参数表)  #include <iostream> using namespace std; //定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数的函数 char (*pFun)(int);…
//首先看一下函数指针怎么用 #include <iostream> using namespace std; //定义一个函数指针pFUN,它指向一个返回类型为char,有一个整型的参数的函数 char (*pFun)(int); //定义一个返回类型为char,参数为int的函数 //从指针层面上理解该函数,即函数的函数名实际上是一个指针, //该指针指向函数在内存中的首地址 char glFun(int a) { return (char)a; } int main() { //将函数g…
typedef void(*vp)(); 将vp声明为一个函数指针类型,该类型的指可以针指向一个没有参数,带空返回值的函数. 调用方法vp p;创建一个vp类型的函数指针p void print(vp p,int x);  这个函数的参数是(vp类型函数指针,整型变量) #include <iostream> using namespace std; typedef int (*vp)(int,int);//将vp声明函数指针类型 int s1(int x,int y)//s1函数(该函数需要…
typedef 本质上是定义了一种新的类型, 该新类型可以原有类型的别名或是原有类型的组合. 而#define 只是字符串的替换. 如定义: typedef char* CHARP; 则 CHARP a, b: 等价于 char* a; char* b; 而定义: #define char* CHARP; 则 CHARP a, b; 等价与 char* a, b;即 char* a; char b; http://www.cnblogs.com/csyisong/archive/2009/01/…
先来看一个最简单的函数: void foo(int a) { cout << a << endl; } 它的函数指针类型为 void (*)(int); 我们可以这样使用: void (*pFunc)(int) = &foo; pFunc(); 这就是函数指针的基本使用.   类的成员函数   那么,对于类的成员函数,函数指针有什么不同呢? 我们观察下面的类: class Foo { public: //void (Foo::*)(int) void foo(int a)…
在学习windows API的时候,遇到下面这段代码   以前见过的typedef的用法都是给一个数据类型取一个别名 typedef oldTypeName newTypeName   这种给数据类型取一个函数名字的还是第一次看到, 于是做了一下实验,如下图: 上图定义了一个TemplateFn模版函数和Addition函数, 用TemplateFn声明了一个变量a,并将Addition赋值给a, 结果编译器报错: 如上图蓝色光标所示,数据不匹配. 原因是因为Addition返回的是一个函数指针…
先看tomcat里用到的代码: //然后开始动画 //把图片放到animationImages,接受数组参数 self.tom.animationImages = arrayImage; //设置时间间隔,81张图,图多就播的时间稍微长,否则短 self.tom.animationDuration = arrayImage.count * 0.074; //设置重复次数 self.tom.animationRepeatCount = ; //开始动画 [self.tom startAnimati…
==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明作者和出处,并保证文章(包括本声明)的完整性. 未经作者授权请勿修改(包括本声明),保留法律追究的权利. 未经作者授权请勿用于学术性引用. 未经作者授权请勿用于商业出版.商业印刷.商业引用以及其他商业用途. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.c…
一 函数指针 1 函数类型 函数的类型由它的返回值类型,和形参类型共通过决定,与函数名无关. eg:bool lengthcompare(const string&, const string&); 该函数的类型是bool (const string&, const string&) 2 函数指针声明 声明一个上述类型的指针pf bool (*pf)(const string&, const string&) 3 使用函数指针 (1)把函数名作为一个值使用时…
回调函数比喻: 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货. 在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件. 回调函数是一个程序员不能显式调用的函数:通过将回调函数的地址传给调用者从而实现调用. 回调函数使用是必要的,在我们想通过一个统一接口实现不同的内容,这时用…
转载自:http://blog.csdn.net/shihui512/article/details/9787125 什么是函数指针函数指针的声明函数指针的赋值函数指针的使用将函数作为其他函数的参数在C类中使用函数指针typedef 返回类型类名新类型参数表函数指针的应用用指向函数的指针作函数参数函数指针与指针函数的区别函数指针与typedef函数指针与动态绑定其他 什么是函数指针 就像某一变量的地址可以存储在相应的指针变量中一样,指向函数的指针中保存着函数代码起始处的地址 函数指针的声明 当声…
C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用的时候通过指针访问这个函数. 在C语言中函数指针的申明如下: //可以理解为申明一个指着变量 Func ,它的类型是 返回Type(可以为 void )类型的参数,接收 (Type one,Type two,...)类型的//参数(可以不接受参数). Type *Func(Type one,Type…
这篇文章主要介绍了C++普通函数指针与成员函数指针,很重要的知识点,需要的朋友可以参考下   C++的函数指针(function pointer)是通过指向函数的指针间接调用函数.相信很多人对指向一般函数的函数指针使用的比较多,而对指向类成员函数的函数指针则比较陌生.本文即对C++普通函数指针与成员函数指针进行实例解析. 一.普通函数指针 通常我们所说的函数指针指的是指向一般普通函数的指针.和其他指针一样,函数指针指向某种特定类型,所有被同一指针运用的函数必须具有相同的形参类型和返回类型. ?…
在cocos2d-x中,经常会出现这样的调用,如 ->*,这个是什么意思呢,如下面得这个例子: , 其实这是对类的成员函数指针的调用,在cocos2dx中,这种形式多用于回调函数的调用.如我们经常用到的循环函数 schedule( CC_SCHEDULE_SELECTOR(PauseTest::unpause), 3); 这个意思就是每隔3秒,执行一下unpause方法,这里就用到了成员函数指针,先看下CC_SCHEDULE_SELECTOR的宏定义 #define CC_SCHEDULE_SE…
功能:输入一个字符串,判断是否为回文. 主要锻炼指针的用法. 1.C版 #include<stdio.h> int main() { ]; char a; ,flag=; while((a=getchar())!='\n') { he[i]=a; i++; } int n=i; ;i<n/;i++) { printf(-i]); -i]) { printf("no");break; } } ) { printf("yes"); } ; } getc…
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻.在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解. 函数指针和一个简单的函数 我们从一个非常简单的”Hello World“函数入手,来见识一下怎样创建一个函数指针. 1 2 3 4 5 6 7…