c语言如何传递结构体指针,注意使用结构体指针给函数传递参数。
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
為了增加參數(shù)調(diào)用的靈活性,可以利用結(jié)構(gòu)體指針傳遞多個不同的參數(shù)進(jìn)入C語言函數(shù)體。
最著名的例子就是用Win32API
HANDLE CreateThread(LPSECURITY_ATTRIBUTES
lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE
lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId);
函數(shù)來創(chuàng)建線程。
函數(shù)的返回值是一個線程句柄
LPSECURITY_ATTRIBUTES lpThreadAttributes一般設(shè)為NULL
DWORD dwStackSize 一般設(shè)為0
LPTHREAD_START_ROUTINE lpStartAddress 是一個函數(shù)指針,一般就是所要執(zhí)行的函數(shù)名。(重要)
LPVOID lpParameter 無類型參數(shù)指針。一般用結(jié)構(gòu)體指針傳遞參數(shù)。無參數(shù)時為NULL。(重要)
DWORD dwCreationFlags 線程執(zhí)行模式:0(立即執(zhí)行),CREATE_SUSPENDED(掛起)
LPDWORD lpThreadId 32位無符號整形指針。用來獲取線程ID。
應(yīng)用舉例:
MultiThread3將演示如何傳送一個指向結(jié)構(gòu)體的指針參數(shù)。
建立一個基于對話框的工程MultiThread3,在對話框IDD_MULTITHREAD3_DIALOG中加入一個編輯框IDC_MILLISECOND,一個按鈕IDC_START,標(biāo)題為“開始” ,一個進(jìn)度條IDC_PROGRESS1;
打開ClassWizard,為編輯框IDC_MILLISECOND添加int型變量m_nMilliSecond,為進(jìn)度條IDC_PROGRESS1添加CProgressCtrl型變量m_ctrlProgress;
在MultiThread3Dlg.h文件中添加一個結(jié)構(gòu)的定義:
struct threadInfo
{
UINT
nMilliSecond;
CProgressCtrl* pctrlProgress;
};
總結(jié)
以上是生活随笔為你收集整理的c语言如何传递结构体指针,注意使用结构体指针给函数传递参数。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言调用dll实例 结构体传参,C#
- 下一篇: android找工作 2019,2019