タグ

C言語に関するTarouのブックマーク (20)

  • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

    最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ

  • 無償のソースコード静的解析ツール、AdLint登場 | マイナビニュース

    オージス総研は2月28日、C言語プログラミング用の静的解析ツール「AdLint 1.0」を無償公開した。AdLint 1.0はオープンソース化されており、ライセンスとしてGNU GPL 3を採用している。ANSI C89、ISO C90、 ISO C99の一部に準拠したソースコードの解析ができるという。 AdLintではシングルモジュール解析、クロスモジュール解析、597種類の警告検知、14種類のコード情報抽出、15種類のコード品質メトリクス測定などを実装しており、コンパイラでは検出できない不具合の可能性を警告したり、「経路複雑度」、「被呼出し数」、「デッドコード数」などを測定してソースコードの品質を指標化したりできるとしている。また、同社が提供しているソースコード品質評価ツール「Adqua」と組み合わせることでソースコードの品質を視覚的なレポートで表示することもできるという。 AdLin

  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

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

  • Cにおける識別子の有効範囲と変数の生存期間

    #include <stdio.h> #include <stdlib.h> double add(const double a, const double b) { // a = 0.3; エラー return a + b; } int main(void) { double x = 0.1; double y = 0.2; double sum = add(x, y); printf("%f\n", sum); // 0.300000 return EXIT_SUCCESS; } 仮引数aには0.1が、bには0.2が入ります。関数addの中ではaとbの値を変更することができません。これには2つのメリットがあります。 誤ってaとbの値を変更してしまうようなコードを書いてしまうことがない(たとえ書いてしまってもコンパイラが検出してくれる) 関数addの実装を知らない人にも、関数add内でa

    Cにおける識別子の有効範囲と変数の生存期間
  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
  • Eclipse用C言語コーディングスタイルチェックプラグイン『KariyaSiesta』をリリースしました - みずぴー日記

    伊東まで開発合宿に行って、みんなでC言語のコーディングスタイルチェッカーを作ってました。 => KariyaSiesta | C 言語向けのコーディングチェッカ 配布サイトも作りました。 ルールを簡単にカスタマイズできるようになってるので、みんな使うといいでゲソ。 特徴 Eclipseのプラグインとして使える Eclipseプラグインとして実装されているので、IDEで使えます。 もちろんCDTとも組合せることができます。 簡単イントール 更新サイトから簡単にインストールできます。 もちろん自動アップデートにも対応してます。 XPathでルールで書ける ルールはXPathで書くことができます。 例えば『whileの内でbreakを使ってはいけない』というルールは以下のようになります。 こまかい書き方はマニュアルを参考にしてください。 //Stmt[@sort="While" and .//k

    Eclipse用C言語コーディングスタイルチェックプラグイン『KariyaSiesta』をリリースしました - みずぴー日記
  • H8/300H シリーズ プログラミングマニュアル

    メインコンテンツに移動 ログイン Back メニューを閉じる 製品情報 マイクロコンピュータ アナログ製品 車載用デバイス クロック&タイミング インターフェースと有線コネクティビティ メモリ&ロジック パワー & パワーマネジメント プログラマブル・デジアナ混載、ASICおよびIP製品 RF製品 センサ製品 航空宇宙および苛酷環境用IC ワイヤレスコネクティビティ クロスリファレンス検索 マイクロコンピュータ メニューを閉じる RA Arm® Cortex®-M MCU RZ 32& 64ビットMPU RL78低消費電力8/16ビットMCU RX 32ビット高性能・高効率MCU RISC-V 32 & 64ビットMCU、MPU RH850車載用MCU Renesas Synergy™ プラットフォーム MCU Reality AIソフトウェア その他マイコン製品 アプリケーション アプリ

    H8/300H シリーズ プログラミングマニュアル
  • ビットフィールド

    ビット領域を定める あまり見かけられませんが、構造体にはビットフィールドと呼ばれる技術があります これは、ひとつのメモリ領域(バイト単位)に名前をつけてビット単位に振り分けるものです たとえば、4ビットの領域を持つ変数を作成することはできませんでした char型でも1バイトですね Unicodeへの変換プログラムなどでは2バイトの領域を持つ変数があると便利そうです(たぶん…) このように、プログラマ側で変数の領域を定めたい時にビットフィールドは有効です ビットフィールドの作成は、構造体の生成とほぼ同じです ビットフィールドで使われる方は、通常intまたはunsignedです(signedの場合は上位ビットが符合に使われます) 型 名前: サイズ; 型は説明したとおりです 名前にはメンバ名同様に、このビット領域の名前を指定します サイズにはビット領域を指定します。3と指定すれば、この名前の領

  • Cプログラミングに必要な環境をそろえよう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) 第1回「プログラミング言語Cについて知ろう」では、Cの成り立ちから特徴、その用途までを説明しました。なぜ、Cを学ぶことが重要なのかが理解できたと思います。 Cプログラミングを始めるにあたって、開発に使う環境をきちんと整えることが大切です。今回は、Windows用のCコンパイラとデバッガが含まれているMinGWと、グラフィカル開発環境のEclipseが1つのパッケージになった「Pleiades(プレアデス)」をセットアップし、最初のプログラムを動かしてみるところまで説明します。 MinGWとEclipse、Pleiades Cプログラミングで利用する統合開発環境には、Cコンパイラ、ソースプログラムエディタ、デバッガなどが含まれていて、各機能を効率よく利用できるようになってます。こ

    Cプログラミングに必要な環境をそろえよう
  • 最新Cコンパイラーの最適化事情 - Radium Software

    State of the art C compiler optimization tricks, Felix von Leitner, Linux Kongress 2009. 最近のCコンパイラーの最適化能力についてまとめたプレゼンテーション。定数の扱いやインライン展開などの基的な項目から始まって,分岐の削除やベクトル化, SIMD 化など,最新のコンパイラーに搭載されている様々な機能について調べている。 この手の分岐の削除はほとんどのコンパイラーで有効らしい。 ベクトル化については gcc がだいぶ頑張っている印象。 「gcc は全プラットフォームにおいてビデオコーデックプログラマーより賢い」 これらの最適化が実際のコードでどのように機能するか気になって逆アセンブリコードを覗いてみる人も少なくないと思うけれど,それを代わりにやってくれた感じだ。この手の話題に興味がある人ならば,目を通

    最新Cコンパイラーの最適化事情 - Radium Software
  • 標準Cライブラリ - Wikipedia

    C言語は、PascalやPL/1等の従来のプログラミング言語とは異なり、文字列操作や入出力等の基的な機能を内蔵していなかった。やがてC言語の利用者は、現在の標準Cライブラリの原型となる概念や実装を共有するようになった。 C言語の普及に伴い、言語仕様がそうであったように、ライブラリもまた多くの方言が生まれたが、1989年(ISO/IEC 9899:1990)にANSIによるC言語の標準規格が制定されることで統一化が図られ、更にはいくつかの新たな概念が導入され、これが標準Cライブラリとなった。 その後に行われた標準規格の改定は、標準Cライブラリへの機能追加が主であった。1995年(ISO/IEC 9899/AMD1:1995)には、主としてワイド文字操作に関する関数群が大幅に追加された。また、1999年(ISO/IEC 9899:1999、C99)には、主として複素数や数学上の演算に関する関

  • C/C++ 迷信集 | 株式会社きじねこ

    C/C++ を使うプログラマは大勢います。しかし、その多くは OJT を通して言語を学んだのではないでしょうか? 実はそこに大きな落とし穴があります。 コンピュータや工学のことをよく知らない人たちは、時代の先端を歩むプログラマには「迷信」など無関係だと信じて疑わないかも知れません。しかし、迷信や誤解はどんな世界にも常に存在しています。 というわけで、ここでは C/C++ にまつわる迷信、誤解、よくある間違いを採り上げていきます。非常に後ろ向きな企画ですが、暇つぶし気分転換に読んでみてください。もしかすると、ご自身が迷信にとらわれていたことに気付くかもしれません。 追記(2009/03/15) このコーナーでは、C/C++ にまつわる迷信、誤解、よくある間違いを扱っています。決して「迷信」だけではないのですが、タイトルにはすべて[迷信]を付けています。 これは、主に検索エンジンでタイトルを見

  • BohYoh.com【C言語講座】標準ライブラリ

    プログラミング言語である標準C(ANSI/ISO/JIS)で提供されている全標準ライブラリの完全かつ正確な仕様をアルファベット順に紹介するページです。

  • ファイルの状態を取得する – C言語入門講座

    stat関数は、ファイルやディレクトリの状態を取得します。 この関数は、C言語のライブラリ関数(標準関数)ではありませんので、コンパイラにより、使えない場合があります。

  • 目指せプログラマー!

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

    Tarou
    Tarou 2009/07/17
    記号 意味
  • エンディアン変換/判別関数・マクロ集 (C/C++,(ほぼ?) 処理系・OS 非依存)

    気が向いたら書く. 特定のメモリアドレス範囲にマップされたデバイスのエンディアン判定. デバイス (アドレス) が異なればエンディアンも異なる可能性がある. (実際にそういうデバイスを使ったことがあるわけではなく, 可能性として考えてみているだけ.) レジスタ演算だけでエンディアン変換ができ,メモリアクセス不要. (バイト単位の) シフトが高速に行える CPU,あるいは (シフトに比べて) メモリアクセスが遅い CPU 向き. (バイト単位の) シフトが高速に行えない CPU では, 任意エンディアン変換はエンディアン反転以上に効率が悪い. データ長が長いと,それだけレジスタを多く使用する. ⇒ 同時進行中の,レジスタを使う別の処理の速度を低下させる場合がある. レジスタ長より長いデータは効率良く扱えない. 符号付整数型にトラップ表現が存在する処理系では, エンディアン変換の途中結果がトラ

  • Eclipse CDTメモ

    組み込み環境向けなど従来GNU Compilerに独自ツールを追加していた開発の世界に徐々にEclipse CDTが浸透してきています。GNU C/C++コンパイラを使う開発環境ではEclipse CDTが今注目されています。 CDTは、Eclipseのプラグインの1つで、C/C++開発用の主要機能を提供するものです。 目次 Eclipse CDTバージョンと機能の整理バージョン新機能Eclipse CDT 5.0の新機能Eclipse CDT 4.0の機能インストールCentOS 5 x86の場合Eclipse 3.2Eclipse 3.3Eclipse 3.4プロジェクト機能ディレクトリ構成ワークスペース(workspace)プロジェクトCDTが生成するMakefile伝統的なC/C++ディレクトリ構成を取るには・・・Eclipse CDTが想定するディレクトリ構成に合わせるか、Ecl

  • malloc

    指定バイト分、メモリ領域を確保する 【書式】 #include <stdlib.h> void *malloc(size_t size); 【説明】 ヒープメモリから size バイトのブロックを割り当てます。確保されたブロックは 0 クリアされません。 この関数を使うことにより、プログラムで予め配列などを使ってメモリを確保せずに、必要な場所で必要なだけメモリを確保することが出来ます。木構造やリストなど多くのデータ構造は、通常 malloc関数によって動的にメモリを確保します。 malloc関数で確保したメモリは、使用後、必ず free関数で解放してください。 【引数】 size_t size : 確保したいメモリのバイトサイズ size_t は stdlib.h の中でtypedefされ、一般にunsignedです。 【戻り値】 成功時 : 確保したメモリブロックを指すポインタ 失敗時 

  • C言語編 トップページ●Programing Place

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • ページ移転のお知らせ

    ユークエスト株式会社は2021年10月1日をもちまして、 株式会社東光高岳に吸収合併を致しました。 Webサイトは下記のURLに移転しました。 https://uquest.tktk.co.jp/ ※5秒後に移転先にジャンプします。

  • 1