#include <stdio.h>
#include <string.h>
#define node(name, key_t, value_t) \
typedef struct { \
key_t key; \
value_t value; \
} name; \
int main(int argc, const char * argv[]) {
node(stringIntNode, char*, int);
stringIntNode
* n
= malloc(sizeof(stringIntNode
*)); n->key = "first";
n->value = 1;
printf("the node n has a key of %s and a value of %d.\n", n
->key
, n
->value
);
// error starts from here
node(charStringNode, char, char*);
charStringNode
* n2
= malloc(sizeof(charStringNode
*)); n2->key = 'a';
n2->value = "first";
printf("the node n2 has a key of %c and value of %s.\n", n2
->key
, n2
->value
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgbm9kZShuYW1lLCBrZXlfdCwgdmFsdWVfdCkgICAgXAogICAgdHlwZWRlZiBzdHJ1Y3QgIHsgICAgICAgXAogICAgICAgIGtleV90IGtleTsgICAgICAgICAgICAgIFwKICAgICAgICB2YWx1ZV90IHZhbHVlOyAgICAgICAgICBcCiAgICB9IG5hbWU7ICAgICAgICAgICAgICAgICBcCgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkgewogICAgbm9kZShzdHJpbmdJbnROb2RlLCBjaGFyKiwgaW50KTsKICAgIHN0cmluZ0ludE5vZGUqIG4gPSBtYWxsb2Moc2l6ZW9mKHN0cmluZ0ludE5vZGUqKSk7CiAgICBuLT5rZXkgPSAiZmlyc3QiOwogICAgbi0+dmFsdWUgPSAxOwoKICAgIHByaW50ZigidGhlIG5vZGUgbiBoYXMgYSBrZXkgb2YgJXMgYW5kIGEgdmFsdWUgb2YgJWQuXG4iLCBuLT5rZXksIG4tPnZhbHVlKTsKCiAgICAvLyBlcnJvciBzdGFydHMgZnJvbSBoZXJlCiAgICBub2RlKGNoYXJTdHJpbmdOb2RlLCBjaGFyLCBjaGFyKik7CiAgICBjaGFyU3RyaW5nTm9kZSogbjIgPSBtYWxsb2Moc2l6ZW9mKGNoYXJTdHJpbmdOb2RlKikpOwogICAgbjItPmtleSA9ICdhJzsKICAgIG4yLT52YWx1ZSA9ICJmaXJzdCI7CgogICAgcHJpbnRmKCJ0aGUgbm9kZSBuMiBoYXMgYSBrZXkgb2YgJWMgYW5kIHZhbHVlIG9mICVzLlxuIiwgbjItPmtleSwgbjItPnZhbHVlKTsKCiAgICByZXR1cm4gMDsKfQ==