タグ

cとCに関するpoppenのブックマーク (26)

  • Cの基本:いま、使っている型を意識しよう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) 第2回「Cプログラミングに必要な環境をそろえよう」で、Cプログラムの作成ができるようになったので、今回からCの文法の説明に入ります。 まず、変数、定数と型について学びましょう。プログラムはいくつもの処理を行います。その処理の対象となるものとしてもっとも基的なものが、変数や定数です。 また、定数や変数について知るには、データの型というものについての知識が必要です。Cにおいては、データの型をきちんと意識してプログラミングすることが上達への近道なのです。 新しいプロジェクトの作成 変数と定数の説明に入る前に、これから出てくるサンプルプログラムを作成するための手順を確認しておきましょう。ここでは「Hello World ANSI C プロジェクト」をテンプレートプロジェクトとして利用

    Cの基本:いま、使っている型を意識しよう
    poppen
    poppen 2010/02/11
  • やっぱりポインタのポインタは難しいようです — ありえるえりあ

    アリエルでは、プログラマとして応募してきた人に出すための設問を用意しています。現在、C版とJava版があります。 C版の作成は古くて、正直、もう廃棄してもいいかなと思わないのでもないですが、Javaは未経験でC/C++の経験はあります、という人はいますし、そういう人はいわゆるなんちゃってJavaプログラマよりは相対的に能力が高い傾向にあるのでC版も残しています。 最近、立て続けに、他は完璧な回答なのにポインタのポインタが絡む設問だけは間違い、という回答を受け取りました。結果引数(引数で値を返す関数。Cでは必要悪)で、返す値がポインタ値なので、引数の型をポインタのポインタにする必要がある設問です。他の設問で、ポインタを理解しているように見えました。しかし、ポインタのポインタが分からないということは、ポインタをきちんと分かっていないと判断せざるをえません。 昔なら一発でダメ出ししていたのですが

    poppen
    poppen 2010/01/28
  • プログラミング言語Cについて知ろう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) プログラミング言語Cは開発の仕事に役立つ人気のあるプログラミング言語です。 この連載では、Cでのソフトウェア開発をこれから始めようという方や、使った経験はあるが勉強し直したいという方のために、基をきちんと押さえながら勉強できるような解説をしていきます。 なるべく正しい文法や作法を身に付けていただくためにJIS規格を基に解説しますが、それだけにこだわらず実際の開発で役に立つことを分かりやすくお伝えしていきます。 Cの成り立ちと規格 まずは、Cの成り立ちと規格について知っておきましょう。ちょっと堅苦しい感じがするかもしれませんが、歴史を知っているとなぜこういう書き方をするのか、こういった機能があるのかといったことが分かります。また、規格を知っているとプログラミングをしていて何か

    プログラミング言語Cについて知ろう
    poppen
    poppen 2009/12/10
  • 参照はポインタと比べるべきではない - みねこあ

    協力会社のデキるプログラマを次々と切り、代わりにあまりものの正社員が投入されてしまった現在の我が開発チームのレベルは低く、殆どプログラミング専門学校のような様相を呈しています。可愛い男の子が「わかりませーん」というのは萌えますが、30台後半のおじさまが「わかりませーん」というのは殺意が沸きます。 自称 「STLは使ったこと無いけど、C++ 自体は解ってます」な方なのですが、「C++出来ます」の自己申告は危険です。たとえば、曰く、参照がわからない、ですとか。・・・・テケスタ。テケスタ。 ただ、参照には教え方にコツがあるのではないかと思いました。 Cのポインタが文法も概念も引っかき回していった後だけに、他の言語では何でもない「参照」がこんがらかりやすいのは事実です。そういう風に思い直して、こんな解説をしてみました。 * * * C++ の参照と対になるのは、ポインタではなく、通常の変数です。C

    参照はポインタと比べるべきではない - みねこあ
    poppen
    poppen 2009/11/16
  • http://www.usamimi.info/~guiprog/

    poppen
    poppen 2009/08/16
  • C言語プログラミング入門 :Quick,nishio著

    著作権を明記すれば,このの内容を自由に利用・配布・変更してもかまいません. やっと書き終わりました.所々説明が分かりにくいところがあるので,また書き直したいと思っています. このを読み終わった後は,書の続編である ゲーム作りで学ぶ! 実践的C言語プログラミング( http://karetta.jp/book-cover/game-programming )を是非読んでみてください. 以下のページにC言語プログラミング入門のPDF版が置いてあります. http://www.usamimi.info/~guiprog/ なんだか画像がおかしなことになっていました. ゲーム作りで学ぶ!実践的C言語プログラミングの画像が所々に混ざっておりました.すみません. たぶん画像のファイル名が問題なのではないかと思います.

    poppen
    poppen 2009/08/16
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    poppen
    poppen 2009/07/20
    ]
  • ソースコードリーディング(killコマンド編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オペレーション統括部(Yahooショッピング担当)の吉野です。 前回お話しさせていただいたlsコマンドをハックしてみようの公開後、多くの方からご意見をいただきました。 その中で目に付いたのは、「ソースコードリーディングはしてみたいがなかなか(時間|機会)がない」というご意見でした。 そこで、今回はソースコードリーディングとして、FreeBSDで動くkillコマンドのソースコードを読んでみたいと思います。 killコマンドとは、ご存じの通りプロセスにシグナルを送るコマンドです。 trussコマンドでトレースしてみても、killシステムコールしか使っていません。 $ truss /bin/kill 12345 kill(

    ソースコードリーディング(killコマンド編)
    poppen
    poppen 2009/05/28
  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
    poppen
    poppen 2009/03/24
  • C言語編 トップページ●Programing Place

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

    poppen
    poppen 2008/08/19
  • kur.jp - C言語入門者がポインタで躓く3つの理由

    kur.jp バイオリンと自転車をこよなく愛する大学院生のチラシの裏.たまーに技術的なことも書いたりするかも知れません. Home About Me Link 先日,とある一部上場企業で,「技術系新入社員の方にC言語を教える」と言う,とても楽しいイベントがありました. この講義では,Windows環境にCygwinのインストールから始まって,関数やポインタや構造体等を学び,10日かけてC言語を一通り使えるようになってもらおうと言うものです.さすがに業務として受講しているからか受講生は真剣そのもの.教えるほうにも,ついつい熱が入ります. ところで,この講義では,座学の時間よりも演習の時間をたっぷり取って,受講生に,自分の手を動かしてプログラムを組んでもらっています.具体的には,講義時 間の3分の2以上を演習と,その解説に当てています.演習時間中は,教室の中を歩き回って,どんなプログラムを書い

  • 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

  • http://www.machu.jp/posts/20080401/p01/

    poppen
    poppen 2008/04/05
  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
    poppen
    poppen 2006/12/18
  • http://duplo.giants.ch/

    Duplo C/C++/Java Duplicate Source Code Block Finder Contents 1 General Information 2 Download 3 Performance Measurements 4 Background 5 License 1 General Information Duplicated source code blocks can harm maintainability of software systems. Duplo is a tool to find duplicated code blocks in large C/C++/Java systems. 1.1 Sample output ... src\engine\geometry\simple\TorusGeometry.cpp(56) src\en

  • 知っていると便利な gcc のオプション

    back GNU gcc を使う際に知っていると便利なオプションを挙げておきます。 注意: これが全部ではありません。gcc には、ほかにも プロセッサ依存の細かいオプションが山のようにありますが、それらは ふつうあまり利用しないので省略しました。 一般的なオプション -c, -o, -I, -g, -O, -L, -l 省略。それくらい知ってること。ちなみに -L と -l は ld へのオプションであり、順番が重要である。 -pipe 各ステージ間で情報のやりとりをするのに temporary file を使わず、 pipe を使うようにする。このオプションが Makefile などに 含まれているときは、たいてい除いたほうがよい。なぜなら、 多くのシステムでは、アセンブラ側がパイプに対応してないから。 言語仕様に関するオプション -ansi 厳格な ANSI 仕様でコンパイルする。こ

    poppen
    poppen 2006/08/28
    知っていると便利な gcc のオプション
  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
    poppen
    poppen 2006/08/10
    堕落したCプログラマのレベル10
  • 窓の杜 - 【NEWS】2/10/16進数の同時表示やビット演算が可能なプログラマー向け電卓「C電卓」

    2/10/16進数を同時に表示して四則演算を行えるほか、ビット演算やC言語の変数型を反映した計算なども行えるプログラマー向け電卓ソフト「C電卓」v2.1.0が、2月25日に公開された。Windows 98/Me/2000/XPに対応するフリーソフトで、現在作者のホームページからダウンロードできる。 「C電卓」は、2/10/16進数のうち任意の進数で計算を行えるうえ、結果を2/10/16進数で同時表示できる電卓ソフト。四則演算に加えて、2進数の各桁における0/1状態を上下の桁にずらす“ビット演算”を行える。 また、ソフトのウィンドウ下部には、2進数をビットのON/OFFで表現した場合の、各ビットの状態を凹凸で表わすボタン型のスイッチが64個並んでおり、計算結果の数値に応じて自動的にスイッチの凹凸が切り替わる。さらに、スイッチを直接クリックして数値を変化させることも可能。 そのほかソフトで

  • リンクされているライブラリによってプログラムの動作を変える - bkブログ

    リンクされているライブラリによってプログラムの動作を変える weak シンボルを用いると、リンクされているライブラリによってプログラムの動作を変えることができます。ここでは GNU 拡張を用いて weak シンボルを利用する方法を紹介します。 それではさっそくサンプルコードを見てみましょう。このプログラムでは、libm に含まれる sqrt() 関数があるときは利用し、ない場合はその旨のメッセージを表示します。 weak.c #include <stdio.h> extern double sqrt(double x) __attribute__ ((weak)); void func () { if (sqrt) { printf("%f\n", sqrt(10.0)); } else { printf("sqrt isn't available\n"); } } weak-main.c

    poppen
    poppen 2006/02/19
  • main() の前に関数を呼ぶ - bkブログ

    main() の前に関数を呼ぶ C/C++ のプログラムで、main() の前に関数を暗黙的に呼びたいときがあります。ここでは GCC の拡張を使った方法と、C++ のコンストラクタを使った方法を紹介したいと思います。 GCC では main() の前に呼ばれる関数を __attribute__((constructor)) という拡張機能を使って定義できます。たとえば、次のプログラムでは main() の前に foo() が呼び出されます。 #include <stdio.h> __attribute__((constructor)) void foo() { printf("hello, before main\n"); } int main (int argc, char **argv) { printf("hello, world\n"); return 0; } 実行結果は以下の

    poppen
    poppen 2006/02/19