<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/cxxcpp/">
    <title>cealbeit2009-講習とかwiki</title>
    <link>http://w.atwiki.jp/cxxcpp/</link>
    <atom:link href="https://w.atwiki.jp/cxxcpp/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>cealbeit2009-講習とかwiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-06-12T16:21:24+09:00</dc:date>
    <utime>1244791284</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/8.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/cxxcpp/pages/6.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/15.html">
    <title>アセンブリコードの出力</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/15.html</link>
    <description>
      まあググれば出てくると思うけど
vcでアセンブリコードを出力してみる方法。
どんなコードが出てくるのかなーという参考程度に。

1. visual studioで設定する。

&amp;ref(vcasm.png)

2. または「visual studio 200x コマンドプロンプト」からやる。
(pathとかを自動的に通してくれる。)

&amp;ref(vccmd.png)

で、ファイルの置いてあるディレクトリに移動してコンパイルする。
たとえばファイルが「d:\user_data\Documents\C\local_vs_global.c」だったら

 &gt;d:
 &gt;cd D:\user_data\Documents\C
 &gt;cl /FAs /Ox local_vs_global.c

でokなはず。
/Oxは最大限の最適化なので、いろいろへんてこな最適化をしてくれて楽しい。

たとえば
 int g_val;
 void func1()
 {
 	int a=g_val;
 	++a;
 	g_val=a+2;
 }
 void func2()
 {
 	int a=g_val, b=g_val&lt;&lt;1;
 	++a;
 	g_val=a-b;
 }
 int main()
 {
 	func1();
 	func2();
 	return 0;
 }
これぐらいの小さいコードなら、g_valがグローバルなのにもかかわらず、ちゃっかりレジスタに乗ったりする。    </description>
    <dc:date>2009-06-12T16:21:24+09:00</dc:date>
    <utime>1244791284</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/14.html">
    <title>参考文献</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/14.html</link>
    <description>
      プログラミングに関する面白い記事とか

いろんな疑問に答えてくれそう...
[[プログラミングの謎を解明する：ITPro&gt;http://itpro.nikkeibp.co.jp/article/COLUMN/20090603/331227/?ST=develop]]

最近関数型に傾倒...
[[第7回 関数脳のつくり方　First Season：ITpro&gt;http://itpro.nikkeibp.co.jp/article/COLUMN/20090224/325385/?ST=develop&amp;P=1]]    </description>
    <dc:date>2009-06-12T16:01:28+09:00</dc:date>
    <utime>1244790088</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/13.html">
    <title>進め方</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/13.html</link>
    <description>
      週に何回か集まって質問してそれに答える感じですが
もっとほかにやり方があるだろうという意見があれば。

案

・1日1個質問を考えてきてメールする
・質問を考えてくる→分かる人がいればそれに答える
・教えてる人も質問を作ってくる

----    </description>
    <dc:date>2009-05-31T20:58:19+09:00</dc:date>
    <utime>1243771099</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/12.html">
    <title>質問と回答</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/12.html</link>
    <description>
      ・コメントのネストとは何か
テキストには例がない。普通にcプログラムを書いているとわりとよく遭遇する。
 int main()
 {
   int a=0;
   /* ②if文いらねーや。
   if(a==0) /* ①ここに説明を書いた。 */ 実際はここでコメントが終了。
   {
   }
   ②ここまでのつもり */
 }

・誤植

・アクセス指定子

・真偽値
if, while, forの第二項は式の真偽値を評価する。
真偽値というのは、その式があっている(true)か間違っている(false)かということ。
式が論理式じゃない場合は、値が「0」の場合はfalse、「非0」の場合はtrue

・namespace stdとは
同じ名前は同じものと判断されるので、ライブラリを使うなど、異なるプログラム間で名前が衝突するとコンパイルとかリンクができなくなる。
c++ではnamespaceを作ることでライブラリの互換性を高めている。
ほかの言語ではmoduleとか呼ばれる時もある。

stdは標準名前空間で、たいていのc++を謳う環境にはくっついている。
たいていの環境で使える関数とかクラス群が定義されている。
（それでも微妙な互換性の問題があったりするらしいけど。

・const

・インライン関数はよく使うものなのか
よく使うというか、
高速化したいなら気合い入れて使わないと大して早くならない。
性能はけっこう環境依存なので、
高速化をやろうとしたら、実行されるコードに対していろんな種類のcpuごとにクロック数をにらみながらインラインを切り替えたりループを書き換えたり...みたいな作業がいるっぽい。
しかしそれよりもむしろアルゴリズムを改善したほうが速かったりする。

・共用体
構造体がデータを並べて保持するのに対して
共用体はデータを重複させて保持する。
メモリの少ない環境とか、大量のメモリを消費するプログラムに使われたりする。
いわゆる、ゆとりには扱えない代物だが、メンテナンス性は微妙。

・enum
中身はintとかの形で保持されるが、値のとれる範囲を制限するのに結構有効。
 #define EULAR 1
 int a=EULAR;
 if(a    </description>
    <dc:date>2009-06-16T11:56:56+09:00</dc:date>
    <utime>1245121016</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/11.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/11.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_60_ja.html


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/10.html">
    <title>プラグイン/関連ブログ</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/10.html</link>
    <description>
      * 関連ブログ
@wikiのwikiモードでは
 #bf(興味のある単語)
と入力することで、あるキーワードに関連するブログ一覧を表示することができます

詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_161_ja.html

-----


たとえば、#bf(ゲーム)と入力すると以下のように表示されます。


#bf(ゲーム)
    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/9.html">
    <title>プラグイン</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/9.html</link>
    <description>
      @wikiにはいくつかの便利なプラグインがあります。

-----


#ls

-----

これ以外のプラグインについては@wikiガイドをご覧ください
=&gt;http://atwiki.jp/guide/
    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/8.html">
    <title>プラグイン/動画(Youtube)</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/8.html</link>
    <description>
      * 動画(youtube)
@wikiのwikiモードでは
 #video(動画のURL)
と入力することで、動画を貼り付けることが出来ます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_209_ja.html

また動画のURLはYoutubeのURLをご利用ください。
＝＞http://www.youtube.com/

-----


たとえば、#video(http://youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。


#video(http://youtube.com/watch?v=kTV1CcS53JQ)

    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/7.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/7.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/25_171_ja.html


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/cxxcpp/pages/6.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/cxxcpp/pages/6.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2009-05-31T20:37:11+09:00</dc:date>
    <utime>1243769831</utime>
  </item>
  </rdf:RDF>
