[問題] 基本觀念理解 pointer/struct/typedef

看板C_and_CPP (C/C++)作者 (語言轉換真麻煩)時間16年前 (2009/06/08 15:28), 編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
1. #if defined(_WIN32) typedef _int64 XXTYPE; #define DMOD(n,p)((n)%(p)) #elif defined(__GNUC__) typedef int64_t XXTYPE; #define DMOD(n,p)((n)%(p)) #else #include typedef double XXTYPE; #define DMOD(n,p) fmod((n),(p)) #endif ==================== #宣告也能用if喔o.o? 這個不懂的點在(_WIN32) (__GNUC__)這東西是啥?作用是? 2.typedef double aa; 之後,可以把aa當成一個型態(如double)來設定變數型態 如:aa b,那b就是double的型態 3.typedef struct{ int B, m, k, s, t; double minv; } DX_param; typedef struct{ XXTYPE *X; int I,K12,K13,K23; } DX_state; static double DX_k_s1_t_U01(void *vpar, void *vsta) { DX_state *state = vsta; DX_param *param = vpar; int I0 = state->I - (param->t -1); if(I0<0) I0+= param->k; if(++state->I >=param->) state->I =0; state->X[state->I] = DMOD (param->B * state->X[state->I] + state->X[I0], param->m); return ((double)state->X[state->]+0.5) * param->minv; } ======================================== 淺藍色部份,可以把這部份看成自定一組向量 然後向量內的每個title、宣告都自己另外設定嗎? (例如不想用 a[1]a[2],改成a[book] a[nono]) 黃色的部份不太懂意思 輸入指標*vpar,然後指標*state = vsta的值? 綠色部份,我可以把state->I當作一個變數來看嘛? (相當於一個向量a[1]) 而state->I可以寫成(*state).I 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.125.72.28

06/08 15:38, , 1F
__WIN32__跟GNU那兩個巨集是平台描述
06/08 15:38, 1F

06/08 15:38, , 2F
Windows下的開發環境會定義 __WIN32__
06/08 15:38, 2F

06/08 15:40, , 3F
黃色部份就當作是型態轉型吧
06/08 15:40, 3F

06/22 02:20, , 4F
state->I 是因為state 是point 所以才用-> 否則用.
06/22 02:20, 4F

06/22 02:20, , 5F
起是如同你說的 (*state).I 會比較好理解
06/22 02:20, 5F

06/22 02:23, , 6F
淺藍色部份 其實就是定義一個 結構(可以理解成一段記憶體
06/22 02:23, 6F

06/22 02:23, , 7F
一個結構就是一個block...就像一個箱子一樣
06/22 02:23, 7F
文章代碼(AID): #1ABBsS7N (C_and_CPP)
文章代碼(AID): #1ABBsS7N (C_and_CPP)