作者chrisjon (語言轉換真麻煩)
看板C_and_CPP
標題[問題] 基本觀念理解 pointer/struct/typedef
時間Mon Jun 8 15:28:24 2009
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
→ Bencrie:__WIN32__跟GNU那兩個巨集是平台描述 06/08 15:38
→ Bencrie:Windows下的開發環境會定義 __WIN32__ 06/08 15:38
推 Bencrie:黃色部份就當作是型態轉型吧 06/08 15:40
推 wupojung:state->I 是因為state 是point 所以才用-> 否則用. 06/22 02:20
→ wupojung:起是如同你說的 (*state).I 會比較好理解 06/22 02:20
推 wupojung:淺藍色部份 其實就是定義一個 結構(可以理解成一段記憶體 06/22 02:23
→ wupojung:一個結構就是一個block...就像一個箱子一樣 06/22 02:23