タグ

C言語に関するn2sのブックマーク (13)

  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様

    まえおき 巷では「プログラマーになりたい人に初学者にとって、ポインタという考え方がわけわかめ」という話がよくあります。 そこでいろいろな人が「ポインタは住所だ」とか「変数がハコで」とか手を変え品を変え分かりやすいように説明してくれています。 それでもなお「ポインタがわかりづらい」という人が後を絶ちません。 もういっそのこと、例え話をやめてド直球で攻めたらいいんじゃないでしょうか。 Hello, Worldより簡単に サンプルコード 以下のコードを考えます。 void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } 「#include <stdio.h>」なんていう謎のオマジナイはこの際ナシです。あんなもの無くたってC言語は成り立ちます。 まぁ見ての通り、どこにも何も出力されませんが。 このプログラムは、「c = a + b」

    例え話をしないC言語のポインタの説明 | 右や左の旦那様
    n2s
    n2s 2018/02/01
  • C言語で学ぶモダンなソケットAPI入門 - Qiita

    C言語で学ぶソケットAPI入門 第1回 サーバ編から始まった時は、とりあえずIPv4限定のレガシーなAPIからはじめて、徐々に発展させていこうという目論見でしたが、今後は何をするにしてもモダンなAPIを使ってソケットプログラミングの話を進めたいところです。 そこで今回はクライアントから受け取った文字列を返すエコーサーバプログラムを、モダンなAPIを使って書き直すことを通じてその詳細に迫ります。ソケットプログラミングにおいてモダンなAPIがレガシーな例と比べて優れているのは、処理速度的な点ではなく、現在も未来も含めた様々なケースに柔軟に対応できるという点です。 レガシーな例ではIPv4しか対応できないソケットを作成することしかできませんでしたが、モダンなAPIを使った例では、IPv4とIPv6両方のソケットを用意して届いたデータパケットによって処理を分岐するという、柔軟性のある機能を実装する

    C言語で学ぶモダンなソケットAPI入門 - Qiita
    n2s
    n2s 2016/10/21
  • C言語(C11)で可変長の配列を使う方法 - Qiita

    【注意】下記はC言語での話であって、C++言語の話ではありません。混同しないように! 配列の長さを実行時に指定したい! 配列はプログラミングにおいて、重要な要素の一つである。しかし、C言語の配列は、コンパイル時に長さを固定化する必要があるため、実行時に長さを指定することができない。実行時に長さを指定して配列を作成するには、malloc等でメモリを動的に確保する必要がある。 と、思っていた時期が私にもありました。最新のC言語ではなんとかallocなんてよくわからないものを使う必要はありません。 可変長配列 (variable length array, VLA) 下のは、入力した値までの素数を数え上げるプログラムです。 #include <stdio.h> int main(void) { int n; printf(u8"自然数をいれてね: "); fflush(stdout); if (

    C言語(C11)で可変長の配列を使う方法 - Qiita
    n2s
    n2s 2016/06/14
  • stdbufでunbuffer - jarp,

    ■ botの状況 たまに抜ける原因が2つあることがわかった。 IFTTTのDate&Timeは毎時15分という設定してるが、これがたまに発火しないときがある。 それとtenki.jp側が15分だとまだ更新してないときがある。 後者はちょっと時間を置いてretryすればいけそうだが、たまに発火しないのはこまるなあ。 なんか別にそんなサービスがあるといいんだが。 ■ curlの--libcurlオプション man curlしてたら面白いオプションを見つけた。 --libcurl <file> Append this option to any ordinary curl command line, and you will get a libcurl-using C source code written to the file that does the equivalent of what

  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • ときどきの雑記帖' 2013年6月(中旬)

    ■_ Some Dark Cornrers of C これは何ヶ月か前にも話題に上ってたはずだけど Some Dark Corners of C : programming Some Dark Corners of C : programming Anyone who write y+++++x deserves whatever pain the language may inflict upon them. Haven't you ever seen the "goes to" operator? int y = 10; while (y --> 0) { // As "y" goes to zero // Do stuff } Or "runs to" operator? int y = 10; while (y ----> 0) { // As "y" runs to zero /

    n2s
    n2s 2013/06/17
  • デニス・リッチーによって書かれた最初のCコンパイラーがGitHubで公開

    mortdeus/legacy-cc · GitHub デニス・リッチー(1941-2011)によって書かれた発展途中の初期のCコンパイラーのソースコードがGitHubで公開されている。ソースコード自体は、まだデニス・リッチー存命の頃から公開されていたが、この機会に紹介してみる。 ライセンスは許諾的で、このライセンス文を同梱すること、並びに、ソースコードから生成されたバイナリはラインセンス文を出力することとなっている。 追記:ライセンスに関してふと思った。このライセンスは名義が企業で、著作権を盾に同意を求めている。日では、映画以外の団体の著作権の保護期間は公開後50年である。UNIXと付属するソフトウェアのソースコードは当時から公開されていた。ということは、1973年に制作されたこのCコンパイラーのソースコードは、日国内では、2024年に著作権が切れるのだろうか。 詳しい経緯は、以下の

    n2s
    n2s 2013/05/23
  • #define MUST_GET 1 /* - 書評 - Head First C */ : 404 Blog Not Found

    2013年04月12日19:00 カテゴリ書評/画評/品評Lightweight Languages #define MUST_GET 1 /* - 書評 - Head First C */ 出版社より献御礼。 Head First C David Griffiths・ Dawn Griffiths / 中田 秀基・ 木下 哲也訳 [原著Head First C] やってくれたのは、やはり結局 O'Reillyだったか。 404 Blog Not Found:(弘法も筆の誤り||まろび出た馬脚)? - 書評 - しろうとクマくんとC言語の授業 その意味で、今もってK&Rを超えるCというのは、「初心者」まで含めても今なお存在しないようだ。C99も出て久しいし、そろそろ出てもいいと思うのだが。 書「Head First C」は、今まで私が出会ったC言語に関するの中で最良の一冊。「入門」

    #define MUST_GET 1 /* - 書評 - Head First C */ : 404 Blog Not Found
    n2s
    n2s 2013/04/12
  • C言語のポインタはメモリを想像できれば理解できる | 100% Pure NEET

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

    n2s
    n2s 2012/11/19
  • なぜ、いま「セキュアコーディング」なのか?

    なぜ、いま「セキュアコーディング」なのか?:もいちど知りたい、セキュアコーディングの基(1)(1/2 ページ) 多くのソフトウェアが脆弱性を抱えたまま出荷され、不正アクセスや攻撃の脅威にさらされているいま、セキュアな開発に関する技術や経験を有するプログラマがいっそう求められるようになりました。この連載ではC/C++言語を例に、セキュアコーディングで特に重要となるトピックスを紹介していきます。 ソフトウェアセキュリテイをめぐる状況 今月から数回に渡って「C/C++セキュアコーディング」の連載を担当させていただくことになりました、JPCERTコーディネーションセンター(JPCERT/CC)、脆弱性解析チームの久保と戸田です。よろしくお願いします。第1回目の記事は久保が担当します。 まず始めに、連載のタイトルにもある「セキュアコーディング」とは何なのか、言葉の整理も兼ねて、あらためて考えてみ

    なぜ、いま「セキュアコーディング」なのか?
  • ポインターの宣言 - ときどきの雑記帖 濫觴編 2011年11月(下旬)

    ■_ ・最先鋒? ついったで「最先鋒」という言葉を使っているのを見かけて、 そりゃ「急先鋒」の間違いじゃないのか? と思いつつぐぐる先生に訊いてみたら結構使用例がある… いやいやいや、辞書にもないし。 ってまあ新しい単語作っちゃいかんとは言わんけども、どうにもこう釈然としないものが。 せんぽう【先鋒】の意味 - 国語辞書 - goo辞書 1 戦闘の際、部隊の先頭に立って進むもの。さきて。「―隊」 2 運動・主張などの先頭に立つもの。「革新派の―となる」「急―」 3 剣道や柔道などの団体戦で、最初に戦う人。→次鋒 →中堅 →副将 →大将 んーむ。 【人生第二幕】プロ野球界から教師の道へ!将来は野球指導者の夢も - スポーツ - ZAKZAK 染田の入団した年のドラフトはいろいろあったんだよねえ。 Twitter / @m_kawaguchi: 【募集】ソフトウェア技術者が読むべきだという

    n2s
    n2s 2011/11/24
    「Github 革命が気になったので訳してみる」
  • プログラミング言語 C の新機能

    プログラミング言語 C は 1990 年に ISO で規格化された言語です。その後、何度かの誤りの訂正や wchar_t 型の追加といった追補がなされた後、さらに使いやすくするための新しい機能が検討されてきました。そして、1999 年、ついに新しいプログラミング言語 C の仕様「ISO/IEC 9899:1999 - Programming Language C」(略称 C99) が 1999/12/01 付けで規格として出版されました。ここでは、その新機能を説明します。

    n2s
    n2s 2010/10/23
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

    n2s
    n2s 2008/04/01
  • 1