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;
};
總結
以上是生活随笔為你收集整理的c语言如何传递结构体指针,注意使用结构体指针给函数传递参数。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言调用dll实例 结构体传参,C#
- 下一篇: android找工作 2019,2019