Hi I am not sure what this code does.
I have the following questions
1. where is the case?
2. #define TLV_INTEGER(name, octets) p->name = -1; Is it define a
function
TLV_INTEGER(name, octets) and return a -1? and similar questions on
other #define
3. in
#define PDU(name, id, fields) \
case id: { \
struct name *p = &pdu->u.name; \
pdu->type_name = #name; \
fields \
p->command_id = type; \
p->sequence_number = seq_no; \
} break;
Why do I need a '"\" and what does it mean by "#name"
Thank you very much!
switch (type) {
#define OPTIONAL_BEGIN
#define TLV_INTEGER(name, octets) p->name = -1;
#define TLV_NULTERMINATED(name, max_len) p->name = NULL;
#define TLV_OCTETS(name, min_len, max_len) p->name = NULL;
#define OPTIONAL_END
#define INTEGER(name, octets) p->name = 0;
#define NULTERMINATED(name, max_octets) p->name = NULL;
#define OCTETS(name, field_giving_octetst) p->name = NULL;
#define PDU(name, id, fields) \
case id: { \
struct name *p = &pdu->u.name; \
pdu->type_name = #name; \
fields \
p->command_id = type; \
p->sequence_number = seq_no; \
} break;
default:
error(0, "Unknown SMPP_PDU type, internal error.");
gw_free(pdu);
return NULL;
}