1.函数传参比如:
foo(int m_test)
{
int n_test;
n_test = m_test ;
}
foo(a),其实函数还是按n_test = m_test;处理
2.而宏处理是这样的
#define MQTTParseMessageType(buffer) ( *buffer & 0xF0 )
MQTTParseMessageType(packet_buffer)
其实替换后就是:( *packet_buffer & 0xF0 );
这样还是按packet_buffer的类型处理的
这样无论传入什么类型的字段,都能按正确的类型处理
3 C语言实现的泛型其实是宏实现的
无论传入什么类型都能按正确的类型处理
阅读(1607) | 评论(0) | 转发(0) |