タグ

C言語に関するpmakinoのブックマーク (33)

  • C 言語や Windows プログラミングはこのようにして習得した Part 1 - 登 大遊@筑波大学大学院コンピュータサイエンス専攻の SoftEther VPN 日記

    あまり参考にならないと思いますが、私がどのようにして C 言語や Windows プログラミングを習得したのかを書いていこうと思います。 C 言語を勉強しなければならないと思ったのは、中学 1 年生の 4 月でした。多くの中学校、高校にもあると思いますが、私が入学した「高槻中学校・高等学校」にもパソコン部のようなものがあり、そこでは C 言語が流行していました。 C 言語が流行していたといっても、「C 言語が良いらしいぞ」という言葉が流行していたという程度であり、誰か C 言語によるプログラミングがものすごくできて人に教える能力がある程度の生徒や教員がクラブにいた訳ではありません。当時、クラブでは PC で動作するフリーウェアのゲームが多数流行っており、放課後や昼休みなどに皆で必死にゲームをして遊んでいました。そのときに流行っていたゲームの 1 つに、以下の「Flying Jump」という

    C 言語や Windows プログラミングはこのようにして習得した Part 1 - 登 大遊@筑波大学大学院コンピュータサイエンス専攻の SoftEther VPN 日記
    pmakino
    pmakino 2011/11/20
    「.exeファイルをダンプして気持ち悪い文字を画面に表示…というような高尚なこと」「「::」のような顔文字のような気持ち悪い記号」「この「Microsoft Foundation Class」というのには絶対に関わってはいけないに違いない」
  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
  • C言語最大の欠点

    1980年代、筆者が高校生・大学生だったころに「C言語がすごい」という話を友人から聞いていた。しかし、当時の筆者が触れていたのはMSXパソコンのBASICと大学の汎用機のFortranくらいだった。C言語をやっと手に入れたのは、1992年の暮れである。清水の舞台から飛び降りるような気持ちでBorland C++の大箱を買って帰った。 それから20年近くが経過した今でも、C言語は「最強のプログラミング言語」と呼ぶべきポジションを確保し続けている。UNIXオペレーティングシステムとC言語が世界に与えたインパクトの大きさは、実に大きなものがあった。 ただ、C言語を学習したり評価したりする際には、C言語の大きな欠点を知っておく必要があるだろう。筆者が考えるその大きな欠点とは、「文字列の扱いが非常に面倒」であることだ。 「バッファオーバーフロー」を回避するのは大変 例を示そう。図1はC言語で記述した

    C言語最大の欠点
    pmakino
    pmakino 2010/10/21
    「C言語は「最強のプログラミング言語」」「そろそろC++を使ってみてもいいのでは?」(キリッ …15年前の記事にしか見えないけどスクリーンショットがAeroで秀丸 / 「最大の欠点」が好きな人だなあ http://bit.ly/3yI1ia
  • PHPをC++に変換して高速化する「HipHop for PHP」をFacebookが公開 : candycane development blog

    アメリカ時間の昼ごろにTwitter上が一つのニュースで埋め尽くされました。 PHPC++に変換して高速化する技術をFacebookが公開したというものです。世界中のPHPハッカーが注目する興味深いリリースという事でちょっと長いですが、リリースノートの和訳を行いました。 原文 http://developers.facebook.com/news.php?blog=1&story=358 Facebookにおいて重要なことのひとつが動作の速さです。過去6年間にわたって、PHPが提供する高速な開発ペースによって多くを成し遂げてきました。プログラミング言語としてみると、PHPはシンプルです。簡単に習得し、簡単に書き、簡単に読み、簡単にデバッグする事ができます。我々は他の言語よりも早くエンジニアを獲得し、それによってより早いイノベーションをすることができます。 今日、私は2年に渡って作業して

  • https://hiratara.hatenadiary.jp/entry/20091212/1260577791

  • 【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)

    ■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく様を楽しんで頂けましたら幸いです。■一発撮りです。バグやミスを頻発させております。申し訳ありません。■gcc、ペイントブラシ、EmEditor、電卓での制作です。■randomのシードを入れていないのは、バグではなくて仕様です。キリッ■次回作の要望などは、Twitterの「tkihira」宛にメッセージをもらえると、確実に読めるのでうれしいです。■今までの作品はこちらで見ることができます→http://void-main.org/niconicoprogram/■(おまけ)ゲッダン→sm8543534■週刊ニコニコランキングで、#128という記念すべき回にてランクインしました!→sm8561979■マイリスト→mylist/16170739

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)
  • Debianがglibcの派生版「eglibc」を採用へ - @IT

    2009/05/07 Debian GNU/Linuxで、C言語の標準ライブラリである「GNU C Library」(glibc)が、その派生版である「Embedded GLIBC」(eglibc)に置き換わる可能性が出てきた。現在はまだDebianの開発版に入る前という段階だが、もし実現すれば、Debian系のディストリビューションであるUbuntuやKnoppix、Xandrosでも置き換わる可能性が高い。家ともいえるFree Software FoundationのGNU版のライブラリをさしおいて、派生版がDebianに入る可能性が高まったことで、ちょっとした波紋が広がっている。eglibcプロジェクトではglibcとの高い互換性を目標に掲げているものの、glibcは、Linux上のサーバソフトウェアを含む多くのアプリケーションが依存しているライブラリだけに、今後の影響範囲が見えづ

  • C++ で Perl 拡張を書くためのモジュールを書いた - TokuLog 改めB日記

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 報告書・成果物(2018年度):IPA 独立行政法人 情報処理推進機構

    2018年度 | 2017年度 | 2016年度 | 2015年度 | 2014年度 | 2013年度 | 2012年度 | 2011年度 | 2010年度 2009年度 | 2008年度 ※ダウンロードファイルのお取り扱いについては注意事項をお読みください。

    pmakino
    pmakino 2007/12/15
    「2007年12月25日 公募を終了しました。」<(つд⊂)ゴシゴシ→(;゚ Д゚)
  • 404 Blog Not Found:Cで強引にたらいを後回し

    2007年05月22日22:00 カテゴリLightweight Languages Cで強引にたらいを後回し 404 Blog Not Found:λ萌え - たらいを後回しを書いた後、なんとかCでも出来ないかと、車輪の再発明する代わりに横車を押してみた。 GCCにはclosureがある! 実は以外と知られていないが、gccでは無名関数は使えなくとも、closureは使える。最近では無名関数をサポートしている言語が人気ということもあり、また無名関数の多くがclosureとしても用いられているため、無名関数の別名としてclosureという呼び方をすることもあるが(私もときどきやる)。この二つは来は別物である。JavaScriptで書くと、 var outer = 1; var closure = function(x){ return outer++ }; var nonclosure

    404 Blog Not Found:Cで強引にたらいを後回し
  • WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux -

    WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux - 目次 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") コメント 以下の文章の日語訳です: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html gcc の info の日語は以下のページから拝借しました: http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_2.html#SEC13 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") She studied

  • 日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)

    しかしこの話には後日談がある。菊やんさんが、面白い話題を振ってくれたのだ。 for (exp1;exp2;exp3) st と exp1; while (exp2) {st exp3;} が等価にならないのはcontinueがあるときとexp3で新しい名前が導入される場合かな exp3でAという名前が定義されると st の挙動が変わるからね。 他には exp3 にラベルをつけられるってのが利点? exp3で名前が導入できるというのは、驚くべきことに int A = 1; { for (;A--; exp3) { printf("%d\n", A); } } において、ループは一回しか実行されないのに、100とか出力できるような式exp3が書けるということです。 C89でも書けます。でも、えらい長いのでショートコードには使えません。 簡略化すると、菊やんさんが言っているのは次のことである。

    日下部(void)さんと遊ぼう(13) - やねうらおブログ(移転しました)
  • 日下部(void)さんと遊ぼう(12) - やねうらおブログ(移転しました)

    そして真相。 2006年12月05日 07:26 Aさん(トピ主) これ日下部先生の勘違いじゃないかな… 何度脳内コンパイルしても無理だ… 2006年12月05日 22:34 Aさん(トピ主) scope とか continue の動作以外で何かあったのかな… ていうか日下部先生はあんな数分であそこまでの議論の解決を 思いついたんだろうか… すげえなあ 2006年12月10日 11:52 Kusakabe > 日下部先生はあんな数分であそこまでの > 議論の解決を思いついたんだろうか 『あそこまで』ってほどのもんか? Cやるなら常識だろ。 (それとも『あそこ』で指すものは別のもの?) code golfやgoogle code jamで上位にランキングするような日を代表するトッププログラマが何人もで考えてもわからないようなことが「Cやるなら常識」らしい。日下部先生にも困ったものだ。 まあ

    日下部(void)さんと遊ぼう(12) - やねうらおブログ(移転しました)
  • 日下部(void)さんと遊ぼう(11) - やねうらおブログ(移転しました)

    そして煽り合戦へ。 2006年11月26日 08:04 Aさん(トピ主) くれんでもくれても 教えてくれればすぐ終わる話だと思うケド まいっか。 日下部っちにもう一回聞きたいのだけど というか事実確認をしたいんだが while文がfor文より短くなるケースがあるというのは このスレの議論の上で 当に有り得る話ですか?勘違いでしたか? きちんと確かめておきたいのですが。 2006年11月26日 10:38 Kusakabe > 「くれれば」に値するかるかどうかを それは後で知ることになるわけです。 2006年11月26日 11:17 やねうらお > それは後で知ることになるわけです。 レニエのお菓子はいらんのかえ? それともレニエのお菓子と言うものが存在するというのは全くのデマで(ry 2006年11月26日 12:24 やねうらお > くれればおしえますよ。 せっかくレニエのお菓子を渡し

    日下部(void)さんと遊ぼう(11) - やねうらおブログ(移転しました)
  • 日下部陽一(void)さんと遊ぼう(10) - やねうらおブログ(移転しました)

    日下部さんはもう来ないのかと思われたが、即日に書き込みがあった。 2006年11月25日 23:43 Kusakabe MSX-Cコンパイラーも同様 (msxは生き返ったのに、MSX-Cは生き返らなかった!) すでにかなり前に死にました。 そういうのは当然「数に入りません」 (っていうか、intが8bitだったからなあ、C89でさえない) なんとAさん(トピ主)へのレスだけだった。(´ω`) 2006年11月25日 23:54 Aさん(このトピのオーナー) 重要な話スルーしてると レニエの菓子届かないヨw なんだ日下部さん、ここで逃げるのか。こりゃ面白い。どんどん煽ろう。 2006年11月26日 00:36 やねうらお 日下部さんは、レニエのお菓子が欲しいというのはまったくのデマですか? 2006年11月26日 00:46 Kusakabe > レニエのお菓子が欲しいというのはまったくのデ

    日下部陽一(void)さんと遊ぼう(10) - やねうらおブログ(移転しました)
  • 日下部陽一(void)さんと遊ぼう(9) - やねうらおブログ(移転しました)

    しかし待てど暮らせど日下部さんからは返答が来ない。 2006年11月22日 12:37 Aさん(このトピのオーナー) 何度か足跡はあるので見てるんでしょうけども ツッコミこねーですね… 2006年11月22日 18:55 やねうらお このトピック見てはらないのかも…(´ω`) のちほどメッセージを送ってみます。 2006年11月22日 18:57 Ozy 続きが気になるので、とりあえず私もコメント付けて更新情報が 入るようにしておきます^^ たのしみー も、、盛り上がってきたぞ!(人いないのに) 2006年11月22日 19:03 焼鳥べるのが好き。 船が遅れてレニエの菓子がまだ届いていないのでは? 焼き鳥さんまで参戦か。ちなみに、この焼き鳥さんは、日下部さんの有名なウォッチャーの一人である。 2006年11月22日 20:53 Bさん(美人プログラマ) Kusakabeさんと焼鳥さん

    日下部陽一(void)さんと遊ぼう(9) - やねうらおブログ(移転しました)
  • 日下部陽一(void)さんと遊ぼう(8) - やねうらおブログ(移転しました)

    2006年11月20日 09:39 Kusakabe もっと精進してくださいね。 2006年11月20日 09:40 Kusakabe 3日考えてもわからないようでしたら、 http://mixi.jp/view_bbs.pl?id=5346384&comm_id=258747 これを送ってくれれば教えます ;-) ※ 上記のurlは日の画像であるレニエのお菓子のスレだった。 2006年11月20日 09:47 やねうらお うむ、考えときま!(`ω´) この時点で、私はこのあとどう日下部さんを追い込むかを思案していた。 まず、whileがforより短い場合があるというのはマクロ絡みだと思って間違いない。次に、 while(exp1) { st1 st2 exp2; } と for(;exp1;) { st1 st2 exp2; } で、st1に何かがくれば等価ではなくなるというのは、この

    日下部陽一(void)さんと遊ぼう(8) - やねうらおブログ(移転しました)
  • 日下部陽一(void)さんと遊ぼう(7) - やねうらおブログ(移転しました)

    さて話を戻そう。私の反論が大チョンボだったというのは、マクロの存在を全く考慮に入れていないということにある。short codeを目指す場合、マクロを用いることでコードの短縮化が図れるならば当然マクロを使うだろう。そのマクロはC/C++言語においてプリプロセスで処理される。簡単に言ってしまえば文字置換である。文字置換であるがゆえにマクロは文法規則を全く無視して介入してくる。 そこでC/C++言語の文法構造のBNFやら何やらを持ちだしてきて等価性を言ってもマクロの前には無力なのである。 例えば、for(;exp;) の場合、セミコロンを省略できない。whileではセミコロンは必要ない。この違いがどういう結果を導くのか。次のような括弧つきのマクロがあった場合、whileのほうが短くなるのである。 #define FOREVER (1) for(;FOREVER;) と while FOREVE

    日下部陽一(void)さんと遊ぼう(7) - やねうらおブログ(移転しました)
  • 日下部陽一(void)さんと遊ぼう(6) - やねうらおブログ(移転しました)

    # のら 『処理系によっては2つの書き方が別なバイナリになる可能性があるとか、 do-while を使えば短くなる場合があるとか、そういうオチだったら萎えますな。』 今回のように、AとBとがequivalent(等価)なコードであると言う場合、それは意味的に同じと言うことである。ここで意味論について深く突っ込む気は無いので簡単にだけ言うと、同じ意味ならば同じ働きをすると考えて良い。同じ働きをするとは言っても生成されるコードは異なるかも知れない。ある働きをするプログラムというのは無数の組み合わせが考えられうるからである。 http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/n843.htm の6.8.5.3に、forをwhileで書き換える例が載ってますが、その例に for(;exp;) st を適用すると while (exp) st と等価なのでは?

    日下部陽一(void)さんと遊ぼう(6) - やねうらおブログ(移転しました)
  • プログラミング言語の速度比較:Geekなぺーじ

    Gentoo : Intel Pentium 4 Computer Language Shootout」というプログラミング言語のベンチマークをしているサイトがあります。 このサイトでは、Linux入りPentium 4マシンを使って様々な言語で書いたプログラムのベンチマークを公開しています。 今回はC言語とC++,C#,Javaを比べてみました。 あと、その他言語もそれぞれ比べてみました。 グラフの白い棒がCPU時間を表しています。 白い棒が延びている側の方が実行速度が速い事を現しています。 黒い棒はメモリ利用量を表しています。 黒い棒が延びている側の方が省メモリです。 なお、以下のグラフは特定のベンチマークの結果だけであり、言語自体の優劣ではないので、念のため。。。 その他の言語の組み合わせも色々できるので興味のある方は試してみてください。 C言語 (gcc) vs C++ (g++