苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。
はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム この本には一冊の本に盛り込むにはやや欲張りな内容を詰め込みました。本書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 この本では、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを本書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう
Note: file upload may not work with Internet Explorer on some versions of Windows XP Service Pack 2, see our information page on the W3C QA Website. Validate by direct input Enter the Markup to validate: More Options
これまでに私自身が実際に試して実践してきた、iPhoneアプリ開発に関するTips集を一覧でまとめました。小粒の小技集が多いですけど、iPhoneアプリを開発する際の手助けになれば幸いです。 [Tips]UINaviga … 続きを読む →
使い方は簡単、変換したいファイルをドラッグ&ドロップして、コンテナ形式(iPod用とかPSP用とかAVIファイル用とかが用意されている)を選び、ビデオ形式とオーディオ形式を選ぶだけ。 変換できるビデオ形式は3gp/3g2、asf、avi(DivX・H263・H263+・H264・XviD・MPEG4・MSmpeg4など)、dat、fli/flc/flv(Flash)、mkv、mpg(MPEG1・MPEG2)、mov(H263・H263+・H264・MPEG4など)、mp4(H263・H263+・H264・MPEG4)、ogg、qt、rm/ram/rmvb(RealPlayer)、str(PlayStation)、swf(Flash)、ts(HDTV)、viv、vob、wmv。おまけでGIFアニメーション形式も可能。 また、変換できるオーディオ形式はac3、amr、mp2、mp3、mp4、m
2021/8/6更新 Thunderbolt4ケーブルがリリースされてきたので、アップデートしました。 blog.magnolia.tech 自分用の買い物メモ USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートするわけではないので、主にケーブル長や用途などで上手く選ばないと、使えなかったり、無駄に高いケーブルを選ぶことになってしまう そんなことを起こさないためのメモ あれこれ迷わないための”全部入り” 低速から高速まで色々な周辺機器の接続に使う(USB2.0, USB3.1, Thunderbolt3) ディスプレイ接続に使う(DisplayPort) 給電に使う(最大100W) などなどを考えると、長さが1.0m以下で、USB PD 5A(100W)対応と書かれているThunderbolt3ケーブルを選ぶと全部対応している。
前提「iPhoneアプリを作りたいなら」ではない。「売れるアプリを作る企画力」や「イケてるUIを作るデザイン力」なしに、「アプリ開発に必要なObjective-Cの技術力」だけあっても意味ない。それでもいい人向け。前提2巷のブクマされている「オススメ本集」は自身の著書や身内の本を薦めるためのポジショントーク的な選書がよくある。溢れかえる「分かりやすさ」を訴える本は必要はない。買うとしても1冊で十分。 分かりやすい本じゃないと身につかないなら、結局作れるものは「その程度」のものに留まる。そして「その程度」を作れる人は既にうじゃうじゃいるからApple税を無駄にするだけ。公式ドキュメント日本語ドキュメント - Apple Developer 日本語化された公式ドキュメント。全てを読むのは難しいが、「Objective-C プログラミング言語」「Objective-Cによるプログラミング」を読め
今、C-teamというサイトの開発に関わっているのですが、あまりに効果が高くてスゴイので、結構ショックだったので紹介します。 C-team 今までWebディレクターとして、バナー制作をしたり、自分のサイトのバナーを制作会社に頼んでいたりしたんですが、これがいかに非効率だったかということを思い知って反省したので、紹介してみます。 自分の関わっているサービスをスゴイスゴイ言うと宣伝くさくなるので避けてたんですが、これは本当にびっくりしたのです。通常のバナーの作り方 通常のバナー広告って以下みたいな手順をふむことが多いですね。 1. 宣伝したいサイトの運営者(ディレクター)が欲しいイメージを制作会社に伝える 2. 制作会社のデザイナーさんがいくつか作る 3. そのバナーでよさそうなものを運営者が選んでそのバナーを出す ここでの問題は、1も2も3も「こういうのがいいんじゃないか」って勝手に想像して
僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、本意にせよ不本意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに 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
このページは、iOS(iPhone/iPad/iPod touch)アプリ開発者/プログラマのための、iOS SDKのAPIの使用コード例の記事を探しやすいようにしたリンク集です。フレームワークごとに表でまとめてあります。メソッドやプロパティなどObjective-CのAPIの使い方の参考にしてください。 @ITにコード例の記事が掲載しているクラス/プロトコル/関数やフレームワークだけしかリストには挙げていませんが、今後新たにiOS SDKの使用コード例がある記事が公開されたら、改訂していく予定です。 フレームワークの並び順は、標準の「iOS Developer Library」と同様にしています。 Frameworks Cocoa Touch Layer Event Kit UI Game Kit iAd Map Kit UI Kit New! Media Layer Assets Li
Validate by URI Enter the URI of a document (HTML with CSS or CSS only) you would like validated: Address: More Options
序 本書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶための本である。本書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。本書はいわばC++における知識のブートストラップを目指した本だ。これにより読者は本を先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し
※ 更新履歴 ※ 2017/11/03 ・sp.8章追加 2017/10/11 ・配布しているプロジェクトをVisualStudio2017に更新(それにまつわる説明も更新) 2015/09/12 ・s.3章 Androidのようなボタンの作り方(C++) 追加 2013/09/02 ・VisualC++2012のプロジェクトを追加 2013/02/23 ・d3.5章追加 2013/02/20 ・d3.1章追加 ・d3.2章追加 ・d3.3章追加 ・d3.4章追加 2013/01/19 ・sp3章追加 ・sp4章追加 ・sp5章追加 ・sp6章追加 ・sp7章追加 2012/06/23 ・3.14章追加 2012/06/16 ・sp1節追加 ・sp2節追加 2012/02/11 ・d6節追加 2011/11/10 ・h11章追加 2011/10/31 ・s1章追加 ・s2章追加 2011/
(訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「本文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり
ネット広告で商品の宣伝をしている会社について、苦情件数を分析し、グラフ化した。 この文書の意図ネット広告は怪しいものが多い、という認識が広まっている。おそらくその広告の中には、悪質な会社もあるだろう。 筆者は、それぞれの企業の「悪質性」を、何らかの形で定量的に表現できないかと考えていた。そのひとつの手段として、苦情件数に着目した。 一般消費者としては、「苦情が多い会社の商品は買いたくない」と考えるのが普通だろう。通販で商品を買う際の参考にして頂きたい。 なお、分析しているのはあくまでも「苦情件数」のみだ。筆者としては、有益な指標のひとつになるだろうと考えているが、これだけで悪質性を強く断言できるとは思っていないので、その点を最初に申し添えておく。 データの出典など苦情件数の期間は2021年7月~2022年6月の1年間。出典はPIO-NETと毎日新聞の記事だ。 PIO-NETは、「苦情相談情
さきほどWWDCにて新言語 Swiftが発表されました。 The Swift Programming Language (iBooks Store) で言語ガイドが公開されていたのでザッと目を通してみました。 Objecitve-Cと比較してSwiftがイケてそうなところをパッと気になったところだけ書いていってみます。 変数/定数の型推論がある Objective-Cのように明示的に型を書かなくても型を推論してくれます。 推論で問題ないケースも多いと思うのでタイプ数がかなり減らせそうですね。 ( 変数を宣言する際はvar、定数を宣言する際はletで宣言します。 ) // 型推論 var name = "Shinji Ikari" // 変数の型は推論によりString型になる var age = 14 // 変数の型は推論によりInteger型になる let height = 141.5
連載:アニメに潜むサイバー攻撃 サイバー攻撃は、時代に合わせ、攻撃の対象や手口が変化してきました。しかし近未来の世界、最新技術へのセキュリティ対策はイメージしにくい部分もあります。そこで、そう遠くない未来、現実化しそうなアニメのワンシーンをヒントに、セキュリティにもアニメにも詳しい内閣サイバーセキュリティセンター(NISC)の文月涼さん(上席サイバーセキュリティ分析官)が対策を解説します。第3回のテーマは「攻殻機動隊S.A.C. 2nd GIG」です。 文月(以下F): 役人とは……。 ITmedia NEWS編集K: 役人とは? F: 国民の血税で国家の運営を任されている公僕です。だからこそ常に中立であり、いわゆる政治のゾーンに関する発言をするべきではありません。 K: なるほど。 F: それは役人のルールでもあり、矜持(きょうじ)でもあります。ですので今回話す内容がそれに類するものに見
Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++のプログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日本語版では、日本語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日本円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。
マツエクをつけているとオイルで出来ているクレンジングは基本NGです。マツエクのグルー(接着剤)と油の相性が悪くマツエクが取れやすくなってしまうからなのですがマツエクを付けている人はどんなメイク落としを使っているのでしょう […]
この冬に亡くなった父方の祖母は、祖父の初婚の相手が病没してからの後添いで、最近は後家でもあった。 彼女が祖父と再婚したとき、すでに父も伯父も成人していたので、祖母を慕うでも疎むでもない、いわゆるおとなの距離感だった一方、私と母は祖母とずっと仲良しだった。 祖母と血縁関係がないことを知ったのは小学生時代の半ばだったが、「あ、まじ?」くらいのかんじで、祖母のことは変わらずずっと好きだった。 80歳になった頃から認知症が出始めて、以降はちょっと若返り、ずっと79歳で通した。 90歳近くになっても「80歳になったら遺言状を書く」と言い続けていたので、遺言状書くのが潜在意識レベルで億劫だったんだろう、気持ちは79歳のまま、91歳で亡くなった。 歳もとしで、生存してる知己も皆無のため、葬儀では町内会長が弔辞を読んで下さった。 会費払うくらいの活動しかしてなかった祖母に対して「〇〇地区の発展のためおおい
<ポイント>卵の生臭みを消すために、生姜は使わず、黄酒(紹興酒)を加える。卵は香りが立ち上るまでたっぷりの油で加熱する。トマトは具を兼ねた調味料とするため、水加えて軽く煮て、片栗粉を少々加え、加熱した卵に絡めるように炒める。 ①にんにく、白ねぎをみじん切りにする。 左が白ねぎ、右がにんにく。 香りづけの薬味には、にんにくと白ねぎを使う。中華料理は何かとしょうがを使うが、この料理に関して、李さんはしょうがを使わない。なぜなら「しょうがを使うと“蟹の味”になってしまう」という。 「蟹⁉」と思うかもしれないが、卵と生姜の組み合わせは、たしかに蟹を思わせる要素がある。例を挙げると、西太后のために作られた宮廷料理、賽螃蟹(サイパンシェ)は、鶏卵に生姜を効かせ、蟹のような味わいを出した料理として知られる。 また、秋冬の風物詩、上海蟹を使った料理で、蟹味噌の生臭みを消すためにしょうがを合わせるあの感じ…
最近、C言語のポインタは難しいって話をプライベートでして、そのときにした説明をまとめてみた。 コンピュータのメモリがどのようになっているか想像する これはHex Fiendというソフトを使ってあるファイルのHexダンプを見たものだけど、コンピュータのメモリも同じような構造になっているのでこれを使う。類似のソフトはHex Editorなどで検索すれば出てくるだろう。 コンピュータのメモリはこうしたずらずらと数値が記録されたマス目の連続のような構造をしている。Hex Editorなのでこれは16進数で表現されている。1バイトは16進数2桁で表現される。Hex Editorでは普通は1バイトごと、あるいは4バイトごとに区切って表示する。このエディタは一区画ごとに8桁の16進数があるので4バイトごと。 ポインタを使うのに重要なのはたぶん、こうしたメモリの内容を頭の中で思い浮かべることができることだ
中国14億人の胃袋を満たす最強の家庭料理 中国の一般家庭で、ほぼどの地域でも作られている料理といえば、トマトと卵の炒めもの(西紅柿炒鶏蛋|西红柿炒鸡蛋)だろう。広大な中国は、地域によって主食が異なり、味付けもガラリと変わるが、トマトと卵は大陸のどこでも手に入りやすい食材で作れるとあって、中国人ならだれでも知っている料理といえる。 とはいえ、どこも同じかというとそうではない。砂糖を入れる派、にんにくを入れる派、炒めてから取り出す派など、細かく見るとそれぞれにこだわりがある。そんななか、見た目でわかる最も大きな違いは「つゆだく」か「つゆなし」かである。 つゆだくORつゆなし、どっちが好き? 「つゆだく」は、たっぷりのトマト汁の中に、炒めた卵と、少々ぐでっとなったトマトが入ったビジュアルがそそる。このタイプは、半分くらい味わったら麺を投入し、セカンドステージを楽しむのが最高of最高。むしろそのた
デモ ニコニコ動画の伝説の動画 「テトリスを1時間強で作ってみた【実況解説】」という動画をご存知でしょうか? 2009年にニコニコ動画で公開されて話題になった動画です。 インタビュー記事:「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」 この動画ではテトリスをいちから作ってわずか62分で完成させています。 しかし実はスタート直後はMinGWのインストール、EmEditorのインストールに続いてブロック画像の作成などをしており、プログラミングが始まるのは開始13分のところからです。 さらに次の10分は「空のウィンドウ」を作るために時間を使っており、実質的にテトリスのプログラミングが始まるのは動画23分のところからです。 つまり、実質的に40分のプログラミングでテトリスを完成させています。 で、動画を見ながら同じようにやれば誰でもテトリスを作れ
https://web.archive.org/web/20080305225407/http://www.c-sawat.com/index2.html └ https://web.archive.org/web/20080723202836fw_/http://www.c-sawat.com/release/yumeoto/dl.html これじゃね ユメミルオトメ:音楽&映像 主題歌:the everlasting light ~約束の夢~ ---------------------------- 自分に架せられた運命に立ち向かう強い決意と 愛する人を想い、まっすぐに見つめる主人公琴音の 姿が表現された主題歌に仕上がりました。 https://www.alchemics.co.jp/users/bandit/vocal9999_damepo.html によると、 (*1)#7(3:5
Google、Mozilla、マイクロソフトが「WebAuthn」の実装を開始。これによって「FIDO2」の普及が期待され、Webブラウザから指紋認証や顔認証などで簡単にWebサイトへのログインや支払いの承認といった操作が実現されそうだ。 多くのWebアプリケーションは、ユーザーの認証にユーザー名とパスワードの組み合わせを用いています。 しかしユーザー名とパスワードの組合わせを用いる方法にはさまざまな問題が指摘されています。身近なところでは、安全なパスワードを生成することの手間や、安全性を高めるためにパスワードの使い回しを避けようとした結果発生する多数のパスワードを管理することの手間などがあげられます。 そしてこうしたパスワードの不便さが結果としてパスワードの使い回しを引き起こし、いずれかのサイトで万が一パスワードが流出した場合にはそれを基にしたリスト型攻撃が有効になってしまう、などの状況
※マイナビ、リクルートなど各社のプロモーションを含みます。 ※この記事は有料職業紹介(許可番号:13-ユ-314522)の厚生労働大臣許可を受けている株式会社コレックが制作しています。 入社後のパフォーマンスが良くないが転職時の面接だけは、やたらとうまい人がいる。 転職の面接を突破するだけのテクニックを教えるのはあまり本質的ではないが、面接だけ得意な人の技術は参考になるので今回は転職面接だけうまい人について話す。 今回記事作成にあたり、転職面接だけうまい人に悲惨な目にあわされ続けてきた方から多くのアドバイスをいただいた。意外と多くの企業が同じ被害にあっているようだ。 あとで詳しく述べるが読者の中で転職活動を進めている人があればまず ビズリーチに登録しよう。 本記事で取り上げるような面接のテクニックも含めて、各業界に詳しいエージェントがサポートしてくれるのとスカウトメールを受け取ることができ
TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと 目次 この文書について C10K 問題 関連サイト まず読むべき本 I/O フレームワーク I/O 戦略 1. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と レベル・トリガ型の完了通知を利用する. 伝統的な select() 伝統的な poll() /dev/poll kqueue() 2. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と 変更型の完了通知(readiness change notification)を利用する. kqueue() epoll リアルタイム・シグナル fd 単位のシグナル (Signal-per-fd)
OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr
第2回 簡潔なコーディングのために (2017/7/26) ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21) Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう 第1回 明瞭なコーディングのために (2017/7/19) C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える Presentation Translator (2017/7/18) Presentation TranslatorはPowerPoint用のアドイン。プレゼンテー
まえおき 巷では「プログラマーになりたい人に初学者にとって、ポインタという考え方がわけわかめ」という話がよくあります。 そこでいろいろな人が「ポインタは住所だ」とか「変数がハコで」とか手を変え品を変え分かりやすいように説明してくれています。 それでもなお「ポインタがわかりづらい」という人が後を絶ちません。 もういっそのこと、例え話をやめてド直球で攻めたらいいんじゃないでしょうか。 Hello, Worldより簡単に サンプルコード 以下のコードを考えます。 void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } 「#include <stdio.h>」なんていう謎のオマジナイはこの際ナシです。あんなもの無くたってC言語は成り立ちます。 まぁ見ての通り、どこにも何も出力されませんが。 このプログラムは、「c = a + b」
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - c
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く