clang

union: gcc と Visual C++ の違い

struct udppkt_fmt_t { u_char type; #if defined(WIN32) union { struct udppkt_type_request_t upd_request; struct udppkt_type_data_t upd_data; }; #elif defined(__linux__) || defined(__FreeBSD__) union { struct udppkt_type_request_t upd_reques…

マクロ/関数を駆使して可読性を高める

移植性の高いプログラムを作る際、マクロを使って複数の環境を同一視すると良い。...と分かって書いてたつもりでもわかってなかった。反省。 具体的な例としては、ネットワークを使うプログラムを Windows と Linux で動作させたい場合、Windows では WinSoc…

recv(fd, buf, sizeof(BUFFER_MAX), 0);

自分のソースコードで見つけた。一人で笑ってしまったではないか。激しくバグ*1。 *1:sizeof(BUFFER_MAX)ではなく、 BUFFER_MAX または sizeof(buf) にすれば良い。