質問編集履歴
3
ちょっと進展
test
CHANGED
File without changes
|
test
CHANGED
@@ -85,3 +85,33 @@
|
|
85
85
|
マクロをよく理解していないことが原因だと思い自分でも色々と調べてみたのですが、未だに理由がわかりません。
|
86
86
|
|
87
87
|
何がいけないのでしょうか? また、エラー処理としてもっとうまい方法があれば、よろしくお願いします。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
********************** 追記 *************************
|
96
|
+
|
97
|
+
色々と試していたのですが、x と val の比較 if ((intptr_t)(x) == (intptr_t)(val))を以下のように直接ec_nullに入れると動きました
|
98
|
+
|
99
|
+
```lang-c
|
100
|
+
|
101
|
+
#define ec_null(x)\
|
102
|
+
|
103
|
+
{\
|
104
|
+
|
105
|
+
if ((intptr_t)(x) == (intptr_t)(NULL)) \
|
106
|
+
|
107
|
+
printe("File <%s> Function <%s> Line %d returned NULL\n", __FUNCTION__, __FILE__, __LINE__);\
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
ということはec_cmpをif文の中に入れていたのがいけなかったということでしょうか? それかec_cmpからreturnするということについて何かおかしかったのでしょうか?
|
2
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
/* x と NULL を比較する */
|
28
28
|
|
29
|
-
#define ec_null \
|
29
|
+
#define ec_null(x) \
|
30
30
|
|
31
31
|
{\
|
32
32
|
|
1
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,4 +84,4 @@
|
|
84
84
|
|
85
85
|
マクロをよく理解していないことが原因だと思い自分でも色々と調べてみたのですが、未だに理由がわかりません。
|
86
86
|
|
87
|
-
何がいけないのでしょうか? よろしくお願いします。
|
87
|
+
何がいけないのでしょうか? また、エラー処理としてもっとうまい方法があれば、よろしくお願いします。
|