#include <stdio.h>
#include <string.h>
#define node(key_t, value_t) \
typedef struct node { \
key_t key; \
value_t value; \
} node
int main( int argc, const char * argv[ ] ) {
node( char *, int ) ;
node
* n
= malloc ( sizeof ( node
* ) ) ; 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( char , char * ) ;
node
* n2
= malloc ( sizeof ( node
* ) ) ; 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+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgbm9kZShrZXlfdCwgdmFsdWVfdCkgICAgXAogICAgdHlwZWRlZiBzdHJ1Y3Qgbm9kZSB7ICAgICAgIFwKICAgICAgICBrZXlfdCBrZXk7ICAgICAgICAgICAgICBcCiAgICAgICAgdmFsdWVfdCB2YWx1ZTsgICAgICAgICAgXAogICAgfSBub2RlCgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqIGFyZ3ZbXSkgewogICAgbm9kZShjaGFyKiwgaW50KTsKICAgIG5vZGUqIG4gPSBtYWxsb2Moc2l6ZW9mKG5vZGUqKSk7CiAgICBuLT5rZXkgPSAiZmlyc3QiOwogICAgbi0+dmFsdWUgPSAxOwoKICAgIHByaW50ZigidGhlIG5vZGUgbiBoYXMgYSBrZXkgb2YgJXMgYW5kIGEgdmFsdWUgb2YgJWQuXG4iLCBuLT5rZXksIG4tPnZhbHVlKTsKCiAgICAvLyBlcnJvciBzdGFydHMgZnJvbSBoZXJlCiAgICBub2RlKGNoYXIsIGNoYXIqKTsKICAgIG5vZGUqIG4yID0gbWFsbG9jKHNpemVvZihub2RlKikpOwogICAgbjItPmtleSA9ICdhJzsKICAgIG4yLT52YWx1ZSA9ICJmaXJzdCI7CgogICAgcHJpbnRmKCJ0aGUgbm9kZSBuMiBoYXMgYSBrZXkgb2YgJWMgYW5kIHZhbHVlIG9mICVzLlxuIiwgbjItPmtleSwgbjItPnZhbHVlKTsKCiAgICByZXR1cm4gMDsKfQ==