2011年6月8日水曜日

flymakeの設定

メモメモ。
どうもGCCのバージョンによって、エラーの出力フォーマットが異なるらしい。
そのため最新のGCCを使っているとflymakeでの出力がすべてエラーとして表示されてしまっていて見にくい。
適当なところに、次の設定を書いとけばOK。
GCC4.6にて確認。
(setq flymake-err-line-patterns
 (cons
  '("\\(.+\\):\\([0-9]+\\):\\([0-9]+\\): \\(.+\\)" 1 2 3 4)
  flymake-err-line-patterns))

2011年6月3日金曜日

C/C++でのvoid*の違い

久々に。
僕のボスがC/C++でvoid*型でのキャストの違いについて指摘するのだけれど、よくわかっていなかった。
int *p = malloc(sizeof(int));
とか書くと、CではOKでC++ではエラーとなる。
Cではこの動作は正しいので確かにエラーではない。が、警告がほしい時もある。
GCCでは-Wc++-compatをオプションに渡せば良い。