タグ

cに関するraituのブックマーク (11)

  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERT C コーディングスタンダード 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ 00はじめに このページでは、JPCERTコーディネーションセンターが翻訳を行っている CE

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
    raitu
    raitu 2012/10/05
    CとC++とJavaを想定したセキュアコーディングルール
  • ビットフィールド - Wikipedia

    ビットフィールド (英: bit field) は、プログラミングにおいてブーリアン型のフラグをコンパクトなビットの並びとして格納する手法である。ビットフィールドの格納には、整数型を使用する。個々のフラグは、ビット単位で格納される。通常は、ソースコードで、個別のビットがフラグに対応する意味を付けられた、2の冪乗の定数が定義される。ビット演算の論理積・論理和・否定の組み合わせが、フラグのセット・リセットとテストを行うために使われる。 ビットフィールドはビット配列(英語版)とは異なる。ビット配列は、整数でインデックスを付けられた大きなビットの集合を保存するために使用され、コンピュータ言語でサポートされる整数型よりも大きいことがある。一方、ビットフィールドは典型的にはワードサイズの範囲内であり、各ビットを参照する表記法は数値によるインデックスから独立している。ただし、ビットフィールドを用いるより

    raitu
    raitu 2012/03/29
    「構造体のビットメンバは実用上は欠点がある。まず、メモリ上のビットの順序はコンパイラによって変化する。加えて、多くの一般的なコンパイラは、ビットメンバの読み書きに対して、非効率なコードを生成」
  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

    タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ

    raitu
    raitu 2012/01/17
    10年以上前からあるC言語の良記事「ポインタが難しいのではない。C言語の、配列とポインタにかかわる文法が混乱しているだけだ」
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

    raitu
    raitu 2012/01/17
    char *(*c[10])(int *p)→「intを指すポインタpを引数にし、charを指すポインタを返す関数」のポインタ配列cへのポインタ int (*(*p)(int *a))[5]→pは「intを指すポインタaを引数にし、int配列へのポインタを返す関数」のポインタ、かな
  • C言語における文字列連結 — KaoriYa

    C言語で文字列連結を行う。とても簡単に思えるけれど、実はパフォーマンスについて考えることもあるんだよ、というお話。 C言語で2つ文字列の連結して、1つの文字列にするプログラム(関数)を書けるでしょうか? ちょっとC言語でプログラミングを学んだことがあれば簡単ですよね。要求仕様としては2つの引数aとbをとり、どちらもNULターミネートな文字列で、その文字列をヒープから確保した領域で連結して戻り値として返す、という感じの動作です。ヨユーですね。ちょっと書いてみてください。 char* str_join(const char* a, const char* b) { char* p = malloc(strlen(a) + strlen(b) + 1); strcpy(p, a); strcat(p, b); return p; } こんな風に書いてしまったあなたは及第点です。個人的には失格です

  • [開発][C言語]超テキトー図解ポインタ - chocolate holic

    まだ途中。書き次第随時追記していきまする。間違いとか分かりにくい表現があったら遠慮無く指摘してくだしあ。

  • とにかく手軽にC言語学習を始めたい人へお勧め「学習用C言語開発環境(仮)」NOT SUPPORTED

    raitu
    raitu 2010/05/14
    エディターからコンパイラから全部ワンセット。C言語学習には確かにもってこいだなー。
  • Cプログラムをデバッグする基本的な方法 | エンタープライズ | マイコミジャーナル

    The Geek Stuff How to Debug C Program using gdb in 5 Simple Steps - The Geek Stuffにおいてgdbを使ったCプログラムの基的なデバッグ方法が紹介されている。あらかじめ問題を仕込んである短いCのソースコードと、それをデバッグオプション付きでビルドして、実際にどのようにデバッグを実施すればいいかが簡潔にまとまっていて参考になる。同記事では次のようなCで記述したソースコードを用意。 階乗計算プログラムをデバッグする例 このソースコードは階乗を計算するという内容。「for (i = 1; i < num; i++) j = j * i」の部分が階乗計算部分だが、変数jが初期化されていないため階乗の計算になっていない。jにどういった数値が入っているかは実行する環境によって左右される。How to Debug C Pro

  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
    raitu
    raitu 2008/12/03
    楽できそう
  • C言語をブラウザで実行、Ruby/Python/Perlも然り | エンタープライズ | マイコミジャーナル

    Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire

    raitu
    raitu 2008/07/14
    //C言語やRuby/Python/PerlがFlashで。//CをいったんLLVM命令に変換したあとでActionScriptへ変換//
  • 1