c语言 函数调用 结构体指针函数参数传递,注意使用结构体指针给函数传递参数。...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

为了增加参数调用的灵活性,可以利用结构体指针传递多个不同的参数进入C语言函数体。

最著名的例子就是用Win32API

HANDLE CreateThread(LPSECURITY_ATTRIBUTES

lpThreadAttributes,

DWORD dwStackSize,

LPTHREAD_START_ROUTINE

lpStartAddress,

LPVOID lpParameter,

DWORD dwCreationFlags,

LPDWORD lpThreadId);

函数来创建线程。

函数的返回值是一个线程句柄

LPSECURITY_ATTRIBUTES lpThreadAttributes一般设为NULL

DWORD dwStackSize 一般设为0

LPTHREAD_START_ROUTINE lpStartAddress 是一个函数指针,一般就是所要执行的函数名。(重要)

LPVOID lpParameter 无类型参数指针。一般用结构体指针传递参数。无参数时为NULL。(重要)

DWORD dwCreationFlags 线程执行模式:0(立即执行),CREATE_SUSPENDED(挂起)

LPDWORD lpThreadId 32位无符号整形指针。用来获取线程ID。

应用举例:

MultiThread3将演示如何传送一个指向结构体的指针参数。

建立一个基于对话框的工程MultiThread3,在对话框IDD_MULTITHREAD3_DIALOG中加入一个编辑框IDC_MILLISECOND,一个按钮IDC_START,标题为“开始” ,一个进度条IDC_PROGRESS1;

打开ClassWizard,为编辑框IDC_MILLISECOND添加int型变量m_nMilliSecond,为进度条IDC_PROGRESS1添加CProgressCtrl型变量m_ctrlProgress;

在MultiThread3Dlg.h文件中添加一个结构的定义:

struct threadInfo

{

UINT

nMilliSecond;

CProgressCtrl* pctrlProgress;

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值