请问如何 在创建B对话框对象的时候,让这个指针指向A对话框对象呢 能不能举例说明下
展开全部
#include <stdlib.h>
#include <stdio.h>
static void
sub_print(int i)
static void
add_print(int i)
static void
data(const char *name, void (*func)(int)) {
int array[] = ;
size_t array_size = sizeof array/sizeof array[0];
size_t i = 0;
printf("%s:\n", name);
for (; i<array_size; ++i)
(*func)(array[i]);
}
int
main(void) {
char *names[] = ;
void (*func_ptr[])(int) = ;
size_t func_count = sizeof func_ptr/sizeof func_ptr[0];
size_t i = 0;
for (; i<func_count; ++i) {
data(names[i], func_ptr[i]);
printf("\n");
}
exit(0);
}
##########################################################
以上程序使用 v3.4.6 gcc -ansi -pedantic -W -Wall 编译通过。
两个函数sub_print 和add_print分别输出参数减一和加一后的值,函数原型均为 void foo(int),定义函数指针数组 void (*func_ptr[])(int) = ;
再定义一个函数data,接受一个指针指向类型为void foo(int)的函数,因此这个指针的定义为void (*foo)(int),和普通的指向int的指针类型为int * 的变化规律是相似的,调用的话也与普通指针相似:在前面加一个星号,变成 (*func)()。
函数指针只是看起来复杂,但实际上变化规律和普通指针是近乎相同的,只不过注意多加括号就是了。
#include <stdio.h>
static void
sub_print(int i)
static void
add_print(int i)
static void
data(const char *name, void (*func)(int)) {
int array[] = ;
size_t array_size = sizeof array/sizeof array[0];
size_t i = 0;
printf("%s:\n", name);
for (; i<array_size; ++i)
(*func)(array[i]);
}
int
main(void) {
char *names[] = ;
void (*func_ptr[])(int) = ;
size_t func_count = sizeof func_ptr/sizeof func_ptr[0];
size_t i = 0;
for (; i<func_count; ++i) {
data(names[i], func_ptr[i]);
printf("\n");
}
exit(0);
}
##########################################################
以上程序使用 v3.4.6 gcc -ansi -pedantic -W -Wall 编译通过。
两个函数sub_print 和add_print分别输出参数减一和加一后的值,函数原型均为 void foo(int),定义函数指针数组 void (*func_ptr[])(int) = ;
再定义一个函数data,接受一个指针指向类型为void foo(int)的函数,因此这个指针的定义为void (*foo)(int),和普通的指向int的指针类型为int * 的变化规律是相似的,调用的话也与普通指针相似:在前面加一个星号,变成 (*func)()。
函数指针只是看起来复杂,但实际上变化规律和普通指针是近乎相同的,只不过注意多加括号就是了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询