タグ

GCCに関するAmaiSaetaのブックマーク (6)

  • C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium

    発端はuchan_nos氏によるこのツイートでした。 C言語で、当にメモリの0番地にデータを書きたいときはどうすりゃええの?— うー@技術書典8 Day1う31 BitNOS (@uchan_nos) 2020年2月12日 それに対する私のリプライ: uint8_t *p = 1; p--; *p = v;— hikalium (@hikalium) 2020年2月12日 私はこれで話が終わると思っていたのだが、どうやらそうではなかったらしく、色々な視点からの意見が加わりながら、話は混沌を極めたのでした…。 ということで、ここに私のこのツイートに対しての見解とか、わかったことをまとめておこうと思います。 私のリプライの背景について uchanさんが求める「0番地にデータを書きたい」という課題設定を、私はこのように解釈しました。 C言語において、整数0をポインタに変換すると、それはNULL

    C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
    AmaiSaeta
    AmaiSaeta 2020/02/16
    本題からはズレるけど、 "整数からポインタへの変換は処理系定義である" ってマジか。稀に、相互変換が出来る事が前提の処理が在るよね (Win32 API で見た記憶が)。
  • GCC、Javaコンパイラを削除へ

    The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages. GCCチームのデベロッパは9月5日(米国時間)、「Andrew Haley - [PATCH] Delete GCJ」において、GCCブランチからgcc/javaおよびlibjavaを削除するパッチを公開した。GCJ (GNU Compiler For Java)はJavaコンパイラとして開発が進められてきたが、ここ数年は開発が停滞。ほとんどメンテナンスしかされていなかった。すでに役割は果たしたとして削除へ向けた取り組みが進められている。 Javaはこの十年以上、常に重要なプログラミング言語であり続けている。多くのエ

    GCC、Javaコンパイラを削除へ
  • GCC for both x64 & x86 Windows! - MinGW-w64

    Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution. The development and community are very active and welcoming with new contributors every month and simple installers. Headers, Libraries and Runt

    AmaiSaeta
    AmaiSaeta 2013/11/27
    "Mingw-w64 delivers runtime, headers and libs for developing both 64 bit (x64) and 32 bit (x86) windows applications using GCC and other free software compilers." | MinGW本家に欠けてる Windows SDK のヘッダが在ったり。
  • Why does the C preprocessor interpret the word "linux" as the constant "1"?

    Why does the C preprocessor in GCC interpret the word linux (small letters) as the constant 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Result of $ gcc -E test.c (stop after the preprocessing stage): .... int main(void) { int 1 = 5; return 0; } Which of course yields an error. (BTW: There is no #define linux in the stdio.h file.)

    Why does the C preprocessor interpret the word "linux" as the constant "1"?
  • Weffc++、Qeffc++

    説明 このオプションは、Scott Meyers 著『Effective C++』のプログラミング・ガイドラインに基づく警告を有効にします。このオプションを指定すると、コンパイラーは次のガイドラインに基づいて警告を出力します。 #define ではなく、const と inline を使用する。(ユーザーコードのみ。システム・ヘッダー・コードには適用されません。) <stdio.h> ではなく、<iostream> を使用する。 malloc と free ではなく、new と delete を使用する。 C 形式ではなく、C++ 形式のコメントを使用する。システムヘッダーにある C コメントは診断されません。 デストラクターでポインターメンバーに対して delete を使用する。コンパイラーは、delete を使用していないすべてのポインターを診断します。 ポイ

    AmaiSaeta
    AmaiSaeta 2009/06/12
    『Effective C++』『More Effective C++』に添うコードを書いているかをチェックするオプション、らしい。
  • www.textfile.org - Super Technique 講座〜longjmpと例外

    http://www.nurs.or.jp/~sug/soft/super/longjmp.htm だから、コメントのかたちで /* NOTREACHED */ と書いてやると、コンパイラはこのコメントを認識し、このコメントには制御が移らないことを理解する。 ... ちなみにこのようにコンパイラが認識する特殊なコメントとしては、switch 文の FALLTHROUGH を「判って書いている」ことを伝える /* FALLTHROUGH */ があることはご存知かな? へえ当!? 知らなかった。 via http://d.hatena.ne.jp/higepon/20061114/1163517868 追記: http://www.linux.or.jp/JM/html/GNU_gcc/man1/cpp.1.html -lint コメント中に埋め込まれた、プログラムチェッカ lint のコ

    www.textfile.org - Super Technique 講座〜longjmpと例外
    AmaiSaeta
    AmaiSaeta 2006/11/19
    "/* NOTREACHED */と書いたらそのコメント以下に制御が移らないと表明できるそうな。あと /* FALLTHROUGH */
  • 1