かつてのMicrosoft Visual Studio .NET 2003のC/C++コンパイラ(MSVC7.1)には、「volatile変数にオレオレ定義の意味を与えて最適化を行う」というアグレッシブすぎるオプションが存在したという昔話。 どんなもの? このオプションでは、volatileキーワードにC/C++標準規格とは全く異なる独自の意味を与えて、コード生成時の最適化処理に利用します。つまり、コンパイル時に下記を前提としたコード生成を行うのです。 通常の変数=変数実体にアクセスする手段は1通りだけ(aliasingが無い) volatile変数=上記制約の範囲外(aliasingが有る) これは「volatile=aliasingが有りえる」というMSVC7.1だけの独自拡張です。*1 このaliasing(エイリアシング; 別名)という単語、少々耳慣れないかもしれません。alias
2012年現在のC言語コンパイラでもK&R Cソースコードを扱えるか試したのでメモ。*1 結論:gccとMSVCはK&R Cソースコードでもコンパイル可能。 /* K&R style C */ int printf(); int add(); main(argc, argv) int argc; char** argv; { printf("1+2=%d\n", add(1, 2)); return 0; } add(x, y) { return x + y; } gcc系 gcc 4.7.1, 4.6.3にて正常にコンパイル&実行可能なことを確認*2。 $ gcc input.c -fno-builtin$ gcc input.c -fno-builtin -Wall -W -Wextra input.c:5:1: warning: return type defaults to 'in
Development & Contributing Sources The most current WinZsh sources are in a Git repository at Sourceforge.net®. To checkout a copy, run: git://zsh-nt.git.sourceforge.net/gitroot/zsh-nt/zsh-nt WinZsh shares a lot of code with the Windows port of tcsh, however the tcsh code has been developed further and is still currently maintained by the original author. Unfortunately tcsh doesn't have a public S
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く