<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8128827555460626166</id><updated>2011-11-28T09:51:20.651+09:00</updated><category term='データ構造'/><category term='V850'/><category term='分割コンパイル'/><category term='WebCamera'/><category term='組込みLinux(H8マイコン×uCLinux)'/><category term='開発環境'/><category term='boot loader'/><title type='text'>sto's Blog</title><subtitle type='html'>技術的に興味ある事は、とにかくやってみよう！！
このブログは、そのやってみた事のメモ書きとなっています。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-4175306604970845090</id><published>2009-07-26T23:33:00.014+09:00</published><updated>2009-07-27T01:13:07.470+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='データ構造'/><title type='text'>自己参照型(線形リスト)</title><content type='html'>線形リストを作成&lt;br /&gt;&lt;br /&gt;-----------------------------------------queue.c&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#include&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;  &lt;stdio.h&gt;stdio.h&lt;br /&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#include  &lt;span style="color: rgb(0, 0, 0);"&gt;stdlib.h&lt;/span&gt;&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; &lt;stdlib.h&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#include &lt;span style="color: rgb(0, 0, 0);"&gt; string.h&lt;/span&gt;&lt;/span&gt; &lt;string.h&gt;&lt;br /&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*-----メニュー-----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef enum&lt;/span&gt;{&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;　　Term,      &lt;span style="color: rgb(0, 153, 0);"&gt; /* 項目 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;        　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Insert,     &lt;span style="color: rgb(0, 153, 0);"&gt;/* 先頭ノードに挿入 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　       &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; Append,     &lt;span style="color: rgb(0, 153, 0);"&gt;/* 末尾ノードに挿入 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Delete,     &lt;span style="color: rgb(0, 153, 0);"&gt;/* 先頭ノードを削除 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Remove,     &lt;span style="color: rgb(0, 153, 0);"&gt;/* 末尾ノードを削除 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; Clear,      &lt;span style="color: rgb(0, 153, 0);"&gt;/* 全ノード削除 */&lt;/span&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; Print     &lt;span style="color: rgb(0, 153, 0);"&gt;  /* 出力 */&lt;/span&gt;&lt;br /&gt;} Menu;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*-----Node----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; __node{&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;char name[20];&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;char tel[16];&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;struct __node *next;&lt;br /&gt;&lt;br /&gt;} Node;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----線形リスト制御ブロック----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;typedef struct&lt;/span&gt; {&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *head;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *tail;&lt;br /&gt;&lt;br /&gt;} List;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----一つのノードを確保----*/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Node *AllocNode(&lt;span style="color: rgb(51, 51, 255);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return &lt;/span&gt;((Node *)calloc(1, &lt;span style="color: rgb(51, 51, 255);"&gt;sizeof&lt;/span&gt;(Node)));&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----InitList----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;InitList(List *list){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;list-&gt;head = list-&gt;tail = AllocNode();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----InsertNode----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;InsertNode(List *list, &lt;span style="color: rgb(51, 51, 255);"&gt;const char&lt;/span&gt; *name, &lt;span style="color: rgb(51, 51, 255);"&gt;const char&lt;/span&gt; *tel){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *ptr = list-&gt;head;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; list-&gt;head = AllocNode();&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; strcpy(list-&gt;head-&gt;name, name);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; strcpy(list-&gt;head-&gt;tel, tel);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; list-&gt;head-&gt;next = ptr;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----AppendNode----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;AppendNode(List *list, &lt;span style="color: rgb(51, 51, 255);"&gt;const char&lt;/span&gt; *name, &lt;span style="color: rgb(51, 51, 255);"&gt;const char&lt;/span&gt; *tel){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *ptr = list-&gt;tail;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; list-&gt;tail = AllocNode();&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; strcpy(ptr-&gt;name, name);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; strcpy(ptr-&gt;tel, tel);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; ptr-&gt;next = list-&gt;tail;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----DeleteNode----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;DeleteNode(List *list){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt;(list-&gt;head !=list-&gt;tail){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     Node *ptr = list-&gt;head-&gt;next;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     free(list-&gt;head);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     list-&gt;head = ptr;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----RemoveNode----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;RemoveNode(List *list){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt;(list-&gt;head != list-&gt;tail){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt;(list-&gt;head-&gt;next == list-&gt;tail){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　               &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;         DeleteNode(list);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;span style="color: rgb(51, 51, 255);"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;         &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *curr, *prev;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　               &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;         curr = list-&gt;head;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt;(curr-&gt;next != list-&gt;tail){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　                    &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;             prev = curr;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　               &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;             &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;curr = curr-&gt;next;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;         &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　    　　     　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;prev-&gt;next = list-&gt;tail;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt; &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;free(curr);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----ClearList----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;ClearList(List *list){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *ptr = list-&gt;head;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt;(ptr != list-&gt;head){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     Node *ptr2 = ptr-&gt;next;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;free&lt;/span&gt;(ptr);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     ptr = ptr2;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; }&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; list-&gt;head = list-&gt;tail;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;br /&gt;/*----PrintList----*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;PrintList(List *list){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node *ptr;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;        　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;ptr = list-&gt;head;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt;(ptr != list-&gt;tail){&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;printf&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;("%s &lt;&lt;%s&gt;&gt; \n", ptr-&gt;name, ptr-&gt;tel);&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　    　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;ptr = ptr-&gt;next;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; }&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----データ入力----*/&lt;/span&gt;&lt;br /&gt;Node Read(char *message){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Node temp;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;printf&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;("%sするデータを入力して下さい。\n",message);&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;printf&lt;/span&gt;("name:"); scanf("%s", temp.name);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;printf&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;(" tel:"); scanf("%s", temp.tel);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return&lt;/span&gt;(temp);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*----メニュー選択----*/&lt;/span&gt;&lt;br /&gt;Menu SelectMenu(void){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;ch;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　&lt;span style="color: rgb(51, 51, 255);"&gt;     &lt;/span&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; do &lt;/span&gt;{&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;puts&lt;/span&gt;("(1) 先頭にノードを挿入 (2)末尾にノードを挿入");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;puts&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;("(3) 先頭のノードを削除 (4)末尾のノードを削除");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;puts&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;("(5) 全てのノードの削除 (6)全てのノードを表示");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;puts&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;("(0) 終了");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;printf&lt;/span&gt;("番号:"); scanf("%d", &amp;amp;ch);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt;(ch &lt;&gt; Print);&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return&lt;/span&gt;((Menu)ch);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;int&lt;/span&gt; main(&lt;span style="color: rgb(51, 51, 255);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;         　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Menu menu;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt; List list;&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;InitList(&amp;amp;list);&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;do&lt;/span&gt;{&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;     Node x;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　          &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;switch&lt;/span&gt;(menu = SelectMenu()){&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;Insert: x = Read("先頭に挿入");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;InsertNode(&amp;amp;list, x.name, x.tel);        &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;Append: x = Read("末尾に挿入");&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;AppendNode(&amp;amp;list, x.name, x.tel);      &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;break&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Delete:DeleteNode(&amp;amp;list);                &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;break&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Remove:RemoveNode(&amp;amp;list);          &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;break&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Clear:ClearList(&amp;amp;list);                       &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　    　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;break&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;                   　　    　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;case &lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;Print:PrintList(&amp;amp;list);                        &lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　    　　    　　    　　    　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; break&lt;/span&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;              　　    　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　 &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;}&lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt;(menu != Term);&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;    　　     &lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;ClearList(&amp;amp;list);&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;　　&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;string.h&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;return &lt;/span&gt;(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;br /&gt;上記サンプルは&lt;br /&gt;下記、参考書参照。&lt;br /&gt;これいいよ＾＾&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4797331186&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;次回は循環リスト、双方向リストです。&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.geocities.jp/ky_webid/algorithm/011.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-4175306604970845090?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/4175306604970845090/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=4175306604970845090' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/4175306604970845090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/4175306604970845090'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/07/blog-post.html' title='自己参照型(線形リスト)'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-4468941555331477744</id><published>2009-05-30T12:07:00.011+09:00</published><updated>2009-06-01T00:15:24.169+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='分割コンパイル'/><title type='text'>関数、変数のスコープとmakeファイル</title><content type='html'>今回は、下記のような流れでやっていきますよ。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;1.extern宣言,static宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;2.&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ヘッダファイル&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;3.makeファイル作成&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ポイントは、&lt;span style="color: rgb(255, 153, 0);"&gt;関数、変数のスコープ&lt;/span&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&lt;/span&gt;と&lt;span style="color: rgb(255, 153, 0);"&gt;makeファイル&lt;/span&gt;です。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;1.*.c, *.h作成&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mai&lt;/span&gt;.c&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;/span&gt;&lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;init();&lt;span style="color: rgb(0, 102, 0);"&gt;//init()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1();&lt;span style="color: rgb(0, 102, 0);"&gt;//&lt;/span&gt;&lt;/stdlib.h&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;func1&lt;/span&gt;&lt;stdlib.h&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;void init(){}&lt;br /&gt;void func1(){}&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;main(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;init&lt;/span&gt;();&lt;br /&gt;func1();&lt;br /&gt;exit(0);&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;/stdlib.h&gt;&lt;/blockquote&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;main.c内のプロトタイプ宣言は皆さんもご存知の通り、&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;min()内で&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;init&lt;/span&gt;()やdone()を使用する際にコンパイラに引数の数と型と戻り値の型を&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;教えてあげるために宣言するものでした。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c main.c -Wall&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;これは、問題なくコンパイルされますね。&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;では、以下のように別ファイルに関数の実体がある場合はどうでしょうか？&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mai&lt;/span&gt;.c&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;init();&lt;span style="color: rgb(0, 102, 0);"&gt;//init()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1();&lt;span style="color: rgb(0, 102, 0);"&gt;//func1()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;main(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;init&lt;/span&gt;();&lt;br /&gt;func1();&lt;br /&gt;exit(0);&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;init&lt;/span&gt;.c&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;init&lt;/span&gt;(){}&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="text-decoration: underline;"&gt;func1.c&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1(){}&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c main.c -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c init.c -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c func1.c -Wall&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc main.o init.o func1.o dummy -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;同様に&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;問題なくコンパイル・リンクされました。&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;つまり、init()とfunc1()は外部に公開されている事になりますね。&lt;br /&gt;外部に公開されているというのは、main.c以外の別ファイルから&lt;br /&gt;関数を呼び出す事ができるという事です。&lt;br /&gt;つまり、関数はデフォルトの定義でグローバルになるわけです。&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;明示的&lt;/span&gt;に関数をグローバルに宣言するには、次のようにして&lt;span style="color: rgb(255, 102, 0);"&gt;extern接頭語&lt;/span&gt;を用います。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mai&lt;/span&gt;.c&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern void &lt;/span&gt;init();/&lt;span style="color: rgb(0, 102, 0);"&gt;/init()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1();&lt;span style="color: rgb(0, 102, 0);"&gt;//func1()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;main(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;init&lt;/span&gt;();&lt;br /&gt;func1();&lt;br /&gt;exit(0);&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt; }&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c main.c -Wall&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc main.o init.o func1.o dummy -Wall&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;結果は、extern接頭語を使用してもしなくても同様ですね。&lt;br /&gt;また、関数の定義自体にも&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt;func1.c&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern void &lt;/span&gt;func1(){&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;とすることもできます。&lt;br /&gt;ちなみに&lt;span style="color: rgb(255, 102, 0);"&gt;static接頭語&lt;/span&gt;も勉強しましょう。&lt;br /&gt;&lt;br /&gt;static接頭語を用いて関数や変数を定義すると、&lt;br /&gt;スコープはファイル中に限定されます。&lt;br /&gt;つまり、static定義されている関数は、&lt;br /&gt;そのファイルの中でしか使えないという事になります。&lt;br /&gt;そのため、static定義された関数のプロトタイプ宣言を書く場合、&lt;br /&gt;プロトタイプ宣言と実際の関数の定義は同一ファイル内に&lt;br /&gt;ある必要があります。&lt;br /&gt;&lt;br /&gt;次に変数の場合です。&lt;br /&gt;1)value1は、関数内でstatic宣言しています。&lt;br /&gt;2)value2は、関数内で普通に宣言しています。&lt;br /&gt;3)value3は、関数外でstatic宣言しています。&lt;br /&gt;4)value4は、関数外で普通に宣言しています。&lt;br /&gt;&lt;br /&gt;【func1.c】&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include &lt;/span&gt;&lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;static int&lt;/span&gt; value3 = 3;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int&lt;/span&gt; value4 = 4;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt; func1(){&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    static int&lt;/span&gt; value1 = 1;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;value2 = 2;&lt;br /&gt;printf("value1 = %d\n",value1);&lt;br /&gt;printf("value2 = %d\n",value2);&lt;br /&gt;&lt;br /&gt;value1 = value1 + 1;&lt;br /&gt;value2 = value2 + 2;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func2(){&lt;br /&gt;&lt;br /&gt;printf("value3 = %d\n",value3);&lt;br /&gt;value3 = value3 + 1;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;【main.c】&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;stdlib.h&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include &lt;/span&gt;&lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern void &lt;/span&gt;init();&lt;span style="color: rgb(0, 102, 0);"&gt;//init()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1();&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;//func1()のプロトタイプ宣言&lt;/span&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func2();&lt;span style="color: rgb(0, 102, 0);"&gt;//func2()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern int &lt;/span&gt;value4;&lt;span style="color: rgb(0, 102, 0);"&gt;//value4のextern宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;main(&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;init();&lt;br /&gt;func1();&lt;br /&gt;func1();&lt;br /&gt;func2();&lt;br /&gt;printf("value4 = %d\n",value4);&lt;br /&gt;exit(0);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c main.c -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c init.c -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc -c func1.c -Wall&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 102, 0);"&gt;$gcc main.o init.o func1.o dummy -Wall&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;実行結果&lt;br /&gt;$ ./dummy.exe&lt;br /&gt;value1 = 1&lt;br /&gt;value2 = 2&lt;br /&gt;value1 = 2&lt;br /&gt;value2 = 2&lt;br /&gt;value3 = 3&lt;br /&gt;value3 = 4&lt;br /&gt;value4 = 4&lt;br /&gt;&lt;br /&gt;結果をまとめると、&lt;br /&gt;1)関数内でstatic宣言された変数value1は、変数の値が保存されます。&lt;br /&gt;2)関数内で普通にに宣言された変数value2は、func()が呼ばれる度に&lt;br /&gt;初期化されfunc()を抜けると、値は消滅する。&lt;br /&gt;3)関数外でstatic宣言された変数value3は、func.c全体がスコープになり、&lt;br /&gt;変数の値が保存されます。これを広域変数といいます。&lt;br /&gt;4)関数外で普通に宣言された変数value4(main.cでextern宣言されている変数value4)は、&lt;br /&gt;extern宣言する事で、別ファイルにあるvalue4の実体の型をコンパイラに通知することができます。&lt;br /&gt;&lt;br /&gt;関数と変数で微妙に違いますね～&lt;br /&gt;ややこしや～～～&lt;br /&gt;&lt;br /&gt;所で、上記のようなサンプルプログラムの規模なら問題ないのですが、&lt;br /&gt;大規模のプログラムの場合、関数や変数を利用するたびにプロトタイプ宣言や&lt;br /&gt;extern宣言を行う必要が出てくる事になります。面倒です。&lt;br /&gt;そこで次の章です。&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/div&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;font-size:130%;" &gt;2.ヘッダファイル&lt;/span&gt;&lt;span style="text-decoration: underline; color: rgb(255, 102, 0);font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;下記のように関数のプロトタイプ宣言をヘッダファイルに書きます。&lt;br /&gt;&lt;br /&gt;【main.c】&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;stdlib.h&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; "../inc/init.h"&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt;"../inc/func.h"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;main(&lt;span style="color: rgb(0, 0, 153);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;init();&lt;br /&gt;func1();&lt;br /&gt;func1();&lt;br /&gt;func2();&lt;br /&gt;func2();&lt;br /&gt;printf("value4 = %d\n",value4);&lt;br /&gt;exit(0);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;【init.h】&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;init();&lt;span style="color: rgb(0, 102, 0);"&gt;//init()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;【init.c】&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; "../inc/init.h"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;init(){&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;【func.h】&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1();&lt;span style="color: rgb(0, 102, 0);"&gt;//func1()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func2();&lt;span style="color: rgb(0, 102, 0);"&gt;//func2()のプロトタイプ宣言&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;extern&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;value4;&lt;span style="color: rgb(0, 102, 0);"&gt;//value4のextern宣言&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;【func.c】&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; &lt;stdio.h&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#include&lt;/span&gt; "../inc/func.h"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;static int &lt;/span&gt;value3 = 3;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;value4 = 4;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func1(){&lt;br /&gt;&lt;br /&gt;static &lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;value1 = 1;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;int &lt;/span&gt;value2 = 2;&lt;br /&gt;printf("value1 = %d\n",value1);&lt;br /&gt;printf("value2 = %d\n",value2);&lt;br /&gt;&lt;br /&gt;value1 = value1 + 1;&lt;br /&gt;value2 = value2 + 2;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;void &lt;/span&gt;func2(){&lt;br /&gt;&lt;br /&gt;printf("value3 = %d\n",value3);&lt;br /&gt;value3 = value3 + 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ここで、ヘッダファイルや.cファイルには何を書いたら言いかというと、&lt;br /&gt;&lt;br /&gt;ヘッダファイルには&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;ul&gt;&lt;li&gt;外部に公開する定義、宣言&lt;/li&gt;&lt;/ul&gt;.cファイルには&lt;br /&gt;&lt;ul&gt;&lt;li&gt;そのファイル専用の宣言や定義&lt;/li&gt;&lt;li&gt;関数、変数の実体&lt;/li&gt;&lt;/ul&gt;となります。&lt;br /&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;br /&gt;今回は、コンパイル・リンクを手動で行ってきました。&lt;br /&gt;面倒です。&lt;br /&gt;決まった手順でコンパイル・リンクするので、&lt;br /&gt;makeファイルを作りましょう。&lt;br /&gt;ってことで、次の章です。&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);font-size:130%;" &gt;3.makeファイル作成&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;拡張子はなしで、ファイル名をMakefileとします。&lt;br /&gt;内容は下記の通りとなります。&lt;br /&gt;Makefileは*.cと同じディレクトリ&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;におきます。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;OBJS    =main.o init.o func.o&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;TARGET += dummy.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CC      =gcc&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CFLAGS +=-O&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CFLAGS +=-wall&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;#setenv CFLAGS -I/../inc/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.SUFFIXES: .c .o&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;all:    $(TARGET)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(TARGET):$(OBJS)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;          　　　　　　　　　$(CC) $(OBJS) -o $(TARGET) $(CFLAGS)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.c.o:    $*.c&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        　　　$(CC) -c $*.c $(CFLAGS)&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;clean:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        　　　rm -f $(OBJS) $(TARGET)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;$make&lt;/span&gt; とすると、実行ファイルが出来上がります。&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;$make clean &lt;/span&gt;とすると、*.oと*.exeが削除されます。&lt;br /&gt;楽チンですね＾＾&lt;br /&gt;&lt;br /&gt;まず、各種変数の設定を行います。&lt;br /&gt;-&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;---------------------------------------&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;OBJS    =main.o init.o func.o&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;TARGET += dummy.exe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CC      =gcc&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CFLAGS +=-O&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;CFLAGS +=-wall&lt;/span&gt;&lt;br /&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;---------------------------------------&lt;br /&gt;下記は、*.cから*.oを作成するという宣言らしいです。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.SUFFIXES: .c .o&lt;/span&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;下記は、$make allを実行すると、TARGETが生成されます。&lt;br /&gt;TARGETはdummy.exeです。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;all:    $(TARGET)&lt;/span&gt;&lt;br /&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;---------------------------------------&lt;br /&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;下記は、TARGETの生成手順の定義です。&lt;br /&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$(TARGET):$(OBJS)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;          　　　　　　　　$(CC) $(OBJS) -o $(TARGET) $(CFLAGS)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;---------------------------------------&lt;br /&gt;下記は、*.cから*.oの生成手順の定義です。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;.c.o:    $*.c&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        　　　$(CC) -c $*.c $(CFLAGS)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;---------------------------------------&lt;br /&gt;下記は、$make cleanを実行すると、OBJSとTARGETを削除します。&lt;br /&gt;OBJSは*.c、*.oです。&lt;br /&gt;TARGETはdummy.exeです。&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;clean:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;        　　　rm -f $(OBJS) $(TARGET)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;あと、「+=」と「?=」の説明です。&lt;br /&gt;&lt;br /&gt;「+=」は、前回の変数の値に追加するという意味。&lt;br /&gt;「?=」は、値が設定されていないときのみ、値を設定するという意味。&lt;br /&gt;&lt;br /&gt;つまり、デフォルト定義が存在するという事です。&lt;br /&gt;今のところcygwin上では、どこに設定ファイルがあるか不明です。&lt;br /&gt;知ってる方、教えてくださいm(_ _)m&lt;br /&gt;&lt;br /&gt;あと、includeのパス設定をmakeファイルに追加は&lt;br /&gt;また、次回にします。&lt;br /&gt;&lt;br /&gt;とりあえず、今回は以上です。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;stdlib.h&gt;&lt;stdio.h&gt;&lt;stdio.h&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/stdio.h&gt;&lt;/stdio.h&gt;&lt;/stdlib.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-4468941555331477744?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/4468941555331477744/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=4468941555331477744' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/4468941555331477744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/4468941555331477744'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/05/blog-post.html' title='関数、変数のスコープとmakeファイル'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-9008233803871525819</id><published>2009-05-17T03:32:00.009+09:00</published><updated>2009-05-17T19:14:30.802+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boot loader'/><title type='text'>パソコンが起動しなくなった。</title><content type='html'>WindowXPとLinux Fedora Core6のマルチブートにしているNote-PCが起動しなくなった。&lt;br /&gt;理由：WindowsXPからFedoraのパーティションを削除した為。&lt;br /&gt;下記のような画面が出てきて、焦った。。。。&lt;br /&gt;&lt;br /&gt;--------------------------------[画面]----------------------------------------&lt;br /&gt;GNU GRUB version 0.97 (635K lower / 1037000K upper memory)&lt;br /&gt;[ Minimal BASH-like line editing is supported. for the first word, TAB&lt;br /&gt;lists possible command completions. Anywhere lese TAB lists the possible&lt;br /&gt;completions of a device/ filename.]&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;grub&gt; root (hd0,0)&lt;/span&gt;&lt;br /&gt;Filesystem type unknown, partition type 0x7&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;grub&gt;chainloader +1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;grub&gt;boot&lt;/span&gt;&lt;br /&gt;&lt;pre class="SCREEN"&gt;-----------------------------------------------------------------------------&lt;br /&gt;すると、windowsXPの起動画面が出てきた。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;が。。。。。Note-PC製造メーカの画面に遷移し、初期化。&lt;br /&gt;&lt;br /&gt;また、GNUの画面で上記コマンドを打つ。&lt;br /&gt;すると、またWindowsXPの起動画面が。。。また、製造メーカの画面に。。。。&lt;br /&gt;&lt;br /&gt;--------------------------------[画面]----------------------------------------&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;grub&gt; root (hd0,&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt; Filesystem type unknown, partition type 0x7&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:arial;" &gt;grub&gt;chainloader +1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:arial;" &gt;grub&gt;boot &lt;/span&gt;&lt;br /&gt;-----------------------------------------------------------------------------&lt;br /&gt;ってすると、WindowsXPが起動した。。。。&lt;br /&gt;WindowsのBootLoaderはパーティション&lt;br /&gt;hd(0,0)ではなく、hd(0,1)だった。&lt;br /&gt;&lt;br /&gt;次の問題は、windowsXPからUSBが認識しなくなった。&lt;br /&gt;この問題は、しばらくすると治った？？？？？？&lt;br /&gt;&lt;br /&gt;USBが認識したので、外付けCD/DVD ROMから起動し再度Linux FedoraCora6をインストール。&lt;br /&gt;&lt;br /&gt;ここで少しお勉強。&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);font-size:180%;" &gt;ブートプロセスについて&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ブートプロセスは下記のようになっている。&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;1.Power ON --&gt;  2.BIOS  --&gt;  3.Boot Loader&lt;br /&gt;--&gt;  4.Windows OR Linux   --&gt; 5.init&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;1.不揮発メモリに書き込まれているBIOS&lt;br /&gt;(Basic Input/Output System)が実行される。&lt;br /&gt;&lt;br /&gt;2.BIOSはHD内の先頭セクタ(MBR)にインストールされた&lt;br /&gt;Boot Loader(GRUB)をメモリロードする。&lt;br /&gt;&lt;br /&gt;3-4.Boot Loaderは基本パーティション先頭にある&lt;br /&gt;Boot Sector(WindowsXP or Linux)が実行される。&lt;br /&gt;&lt;br /&gt;5.必要なシステムファイルが順次読み込まれログイン画面が出力&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-9008233803871525819?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/9008233803871525819/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=9008233803871525819' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/9008233803871525819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/9008233803871525819'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/05/gnu-grub-version-0.html' title='パソコンが起動しなくなった。'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-692265651194253652</id><published>2009-05-16T23:29:00.009+09:00</published><updated>2009-05-17T23:45:17.915+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='組込みLinux(H8マイコン×uCLinux)'/><title type='text'>組込みLinux(H8マイコン×uCLinux)</title><content type='html'>早速、本を購入しました。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4797337192&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;上記の本では、組込み用マイコンを通してコンピュータの本当の姿に触れるとともに、&lt;br /&gt;uClinuxという現代的なOSをマイコンの上で動作させる事でより高度な応答も可能にしようというのが狙いみたいです。&lt;br /&gt;&lt;br /&gt;よって下記のような構成となっているみたいですよ。&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.マイコンのごく基本的なプログラミングを体験&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.uCLinuxの活用&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;また、必要なものを下記に列挙します。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・プログラミングスキル(C言語)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・Linux経験&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・Linuxが動作しているPC(ディストリビューションは何でもよい)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;・半田ごてなどの電子工作のための工具類&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;1.今回は、&lt;span style="color: rgb(255, 102, 0);"&gt;CPUを体験する&lt;/span&gt;(windowsかつLinux)&lt;/span&gt;&lt;br /&gt;windowの場合&lt;br /&gt;　コマンドプロンプトよりメモリダンプ、書き込み、実行が行えます。&lt;br /&gt;&lt;br /&gt;では、5 + 5の演算を行ってみましょう。&lt;br /&gt;青色：コマンド&lt;br /&gt;赤色：演算結果&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);font-size:78%;" &gt;&gt;debug&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:78%;" &gt;-d 100&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:arial;"&gt;34C7:0100  B8 02 00 BB 03 00 01 D8-A3 20 01 CD 20 00 00 00   ......... .. ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0110  03 00 00 BB 02 00 A3 20-01 CD 20 00 34 00 B6 34   ....... .. .4..4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0120  05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0160  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0170  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 102, 255);font-family:arial;font-size:78%;"  &gt;-a100&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0100 mov ax,5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0103 mov bx,5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0106 add ax,bx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0108 mov [110],ax&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:010B int 20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:010D ^C&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:arial;" &gt;-g&lt;/span&gt;&lt;br /&gt;プログラムは正常に終了しました.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:arial;" &gt;-d 100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0100  B8 05 00 BB 05 00 01 D8-A3 10 01 CD 20 00 00 00   ............ ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;34C7:0110 &lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:arial;font-size:78%;"  &gt;0A&lt;/span&gt;&lt;span style=";font-family:arial;font-size:78%;"  &gt; 00 00 BB 02 00 A3 20-01 CD 20 00 34 00 B6 34   ....... .. .4..4&lt;br /&gt;34C7:0120  05 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;br /&gt;34C7:0130  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;br /&gt;34C7:0140  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;br /&gt;34C7:0150  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;br /&gt;34C7:0160  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;br /&gt;34C7:0170  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;0x5 + 0x5 = 0x0A&lt;br /&gt;&lt;br /&gt;作成途中&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-692265651194253652?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/692265651194253652/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=692265651194253652' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/692265651194253652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/692265651194253652'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/05/linuxh8uclinux.html' title='組込みLinux(H8マイコン×uCLinux)'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-3952824414750470115</id><published>2009-05-16T15:43:00.007+09:00</published><updated>2009-06-01T00:23:53.868+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='開発環境'/><title type='text'>開発環境</title><content type='html'>先日、Note-PCをAmazonで購入しました。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=B001V4HNKY&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;スペック&lt;br /&gt;cpu   : Atom 1.66GHz&lt;br /&gt;memory:      0.99GB RAM&lt;br /&gt;HD    :      160GB&lt;br /&gt;OS    :Winxp Home Edition v 2002 Service Pack3&lt;br /&gt;&lt;br /&gt;使った感想は、思った以上にリアクションが速いです。&lt;br /&gt;このNote-PCは組み込み開発マシンにしようかなと思ってます。&lt;br /&gt;とりあえず、HDのパーティションを区切り、&lt;br /&gt;Fedora Core 6をインストールしました(3日ほど掛かってしまった。。。)。&lt;br /&gt;&lt;br /&gt;Note-PCにはCDドライブが搭載されていません。&lt;br /&gt;ですので、USBメモリにbootdisk.imgを入れ、USBデバイスから&lt;br /&gt;インストーラは起動したのですが、その後のインストーラからの&lt;br /&gt;OS本体の場所と指定方法がわからず、断念。&lt;br /&gt;結局、CD/DVDドライブ購入(; ~ ~)　情けないです。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B0012SCZ1G&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;あと、無線LANルータと。。。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=B000UKFCGM&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;環境は整ったので、とりあえず終了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-3952824414750470115?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/3952824414750470115/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=3952824414750470115' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/3952824414750470115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/3952824414750470115'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/05/linux-h8uclinux.html' title='開発環境'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-5534130637617487153</id><published>2009-04-26T15:57:00.011+09:00</published><updated>2009-05-16T23:48:17.363+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='分割コンパイル'/><title type='text'>分割コンパイル　for cygwin</title><content type='html'>今回はcygwinを使って分割コンパイルとmakefileの勉強です。&lt;br /&gt;書籍は、これ。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=4774117978&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;1．&lt;/span&gt;cygwin　ダウンロード/インストールします。&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cygwin.com/"&gt;http://cygwin.com/&lt;/a&gt;からSetup.exeをダウンロードしインストールします。&lt;/li&gt;&lt;li&gt;必要なパッケージはざっくり言うとgcc　compilerとmakeです。&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;             a.Devel@default&lt;br /&gt;⇒gcc-core: C compiler&lt;br /&gt;                                    ⇒gcc-core: C++ compiler&lt;br /&gt;       b. Devel@default&lt;br /&gt;⇒make: The GNU version of the 'make' utillity&lt;br /&gt;&lt;br /&gt;参考URL:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;・&lt;a href="http://palmbiff.sourceforge.jp/gccdev/cygwin.html" class="l" onmousedown="return rwt(this,'','','res','3','AFQjCNHpuziuS_or8VlV-Cww2VuuW67Gig','&amp;amp;sig2=fqX1a8igz9jAcvx743oS0Q')"&gt;&lt;em&gt;cygwin&lt;/em&gt; version 1.3.22-1のインストール&lt;/a&gt;&lt;br /&gt;・&lt;a href="http://www.yaskey.cside.tv/mapserver/cygwin/"&gt;&lt;b&gt;Cygwinをインストールする&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2.cygwinを起動し、gcc compilerとmakeがインストールされたか確認&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 153, 102);"&gt;※$XXXと表示されているのは、cygwin上でのコマンド入力になります。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;a.$gcc --help　⇒ヘルプが表示されればOK&lt;br /&gt;        b.$make ⇒「make: *** No targets specified and no makefile found.  Stop.」が表示されればOK&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;3.complie source　&lt;/span&gt;&lt;br /&gt;      1)"C:\cygwin\home\USER"配下にフォルダを作成&lt;br /&gt;      2)hello.cを作成&lt;br /&gt;&lt;br /&gt;=====================hello.c&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;#include &lt;/span&gt;&lt;stdio.h&gt;&lt;br /&gt;void main(void)&lt;br /&gt;{&lt;br /&gt;printf("hello, world!\n");&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;return&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;=====================&lt;br /&gt;&lt;br /&gt;      3)hello.cと同じディレクトリにMakefileを作成&lt;br /&gt;        ※ファイル名を「Makefile」とする。&lt;br /&gt;===================Makefile&lt;br /&gt;CC = gcc&lt;br /&gt;CFLAGS = -Wall&lt;br /&gt;&lt;br /&gt;hello:hello.o&lt;br /&gt;===================&lt;br /&gt;　　　　　&lt;br /&gt;　4)cygwinを起動し、hello.cのあるディレクトリに移動&lt;br /&gt;　5)$meke       　　　←コンパイル&lt;br /&gt;　6)正常にコンパイル終了すると、hello.cのあるディレクトリにhello.exe(実行ファイル)が生成される。&lt;br /&gt;　7)$./hello.exe　　←実行&lt;br /&gt;　　　　&lt;br /&gt;正しく標準出力に表示されたら、OKです。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-5534130637617487153?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/5534130637617487153/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=5534130637617487153' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5534130637617487153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5534130637617487153'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2009/04/for-cygwin.html' title='分割コンパイル　for cygwin'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-6093226337280313785</id><published>2008-12-22T21:11:00.022+09:00</published><updated>2008-12-23T01:52:18.325+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='V850'/><title type='text'>Interface 2007年5月号　V850基盤でマイコン開発</title><content type='html'>今回から、雑誌 Interface[2007/5](fig.1)に付属されているV850基盤でマイコン開発を学びたいと思います。尚、WebCameraも平行して投稿を行っていきます。&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B000O75FCM&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;fig.1[広告]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;そもそも、マイコンとは？&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;マイクロコンピュータ[Micro Computer]の略名です。&lt;br /&gt;小さなコンピュータですね。&lt;br /&gt;コンピュータとは計算機のこと。&lt;br /&gt;つまり、小さな計算機ってこと。&lt;br /&gt;参考ページ：&lt;a href="http://monoist.atmarkit.co.jp/fembedded/articles/miconkiso1/02/miconkiso1_02a.html"&gt;@IT MONOist[マイコンと呼ばれるモノの正体とは？]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;"&gt;触ってみよう&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Interface [2007/5]には、下記のマイコン基盤「CQ_V850」(以下、基盤)&lt;br /&gt;と開発一式を収録したCD-ROMが付属しています。&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-zUM-psgI/AAAAAAAAAD0/Y7P9G4tspVo/s1600-h/CIMG1213.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 206px; height: 154px;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-zUM-psgI/AAAAAAAAAD0/Y7P9G4tspVo/s320/CIMG1213.JPG" alt="" id="BLOGGER_PHOTO_ID_5282638047591641602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.2　CQ_V850基盤&lt;br /&gt;&lt;br /&gt;さっそくやってみようと思ったら、&lt;br /&gt;梱包上の理由から実装していない&lt;br /&gt;部品を下記表1に書きます。&lt;br /&gt;※[]内は、数量を示す。&lt;br /&gt;&lt;br /&gt;                                          　　　　　　　　　　　　　　　　　　　　表1&lt;br /&gt;&lt;br /&gt;　　　　　　           品名　　　　　                                      　　　　　　　　　　　　品番　　　　　　　   　　&lt;br /&gt;&lt;ol&gt;&lt;li&gt;水晶発振子[1] 　　　　　　　　　　   32.768kHz　　　&lt;/li&gt;&lt;li&gt;電源コネクタ [1]　　　　　　　　　   DF1B_2P_2.5DSA　　&lt;/li&gt;&lt;li&gt;ヘッダ・ピン(40ピン)[2]                         　　　　　   A1-40PA-2.54DS　　&lt;/li&gt;&lt;li&gt;ヘッダ・ピン(10ピン)                                  [1]　　　　　                 10P&lt;br /&gt;&lt;/li&gt;&lt;li&gt;USB Bタイプ/ライト・アングル[1]                   CU02SAH0000&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ジャンパ・ピン[3]　　　　　　　　　　　-&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ショート・プラグ[3] 　　　　　　　　　　-&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;となっています。&lt;br /&gt;早速、部品を購入してきました。&lt;br /&gt;下記に示します(上記番号と対応)。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-2bmFfxVI/AAAAAAAAAD8/1RHQ6GuY64A/s1600-h/CIMG1214.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 214px; height: 160px;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-2bmFfxVI/AAAAAAAAAD8/1RHQ6GuY64A/s320/CIMG1214.JPG" alt="" id="BLOGGER_PHOTO_ID_5282641473125205330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.3  　7.ショートプラグ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-3JNE1DKI/AAAAAAAAAEM/Qd2OQRGQNhU/s1600-h/CIMG1216.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 212px; height: 159px;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-3JNE1DKI/AAAAAAAAAEM/Qd2OQRGQNhU/s320/CIMG1216.JPG" alt="" id="BLOGGER_PHOTO_ID_5282642256685501602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig .4 　３・４・6.ヘッダ・ピン（40ピン、10ピン）、ジャンパ･ピン&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-3OvZgdfI/AAAAAAAAAEU/bO2TVNxrzDE/s1600-h/CIMG1217.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 199px; height: 149px;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-3OvZgdfI/AAAAAAAAAEU/bO2TVNxrzDE/s320/CIMG1217.JPG" alt="" id="BLOGGER_PHOTO_ID_5282642351798384114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.5 　　2.電源コネクタ&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-251VTerI/AAAAAAAAAEE/QfbfgTz2kzs/s1600-h/CIMG1215.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-251VTerI/AAAAAAAAAEE/QfbfgTz2kzs/s320/CIMG1215.JPG" alt="" id="BLOGGER_PHOTO_ID_5282641992614116018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.6     1.水晶発振子&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-3Y1tqb_I/AAAAAAAAAEk/HOzDGnmiUGU/s1600-h/CIMG1219.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 221px; height: 165px;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-3Y1tqb_I/AAAAAAAAAEk/HOzDGnmiUGU/s320/CIMG1219.JPG" alt="" id="BLOGGER_PHOTO_ID_5282642525292228594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.7     5.ＵＳＢ　Ｂタイプ&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;あと、USBケーブルです。                                 &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-3T2R_JTI/AAAAAAAAAEc/ZYku64E0HiY/s1600-h/CIMG1218.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 214px; height: 160px;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU-3T2R_JTI/AAAAAAAAAEc/ZYku64E0HiY/s320/CIMG1218.JPG" alt="" id="BLOGGER_PHOTO_ID_5282642439545234738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.8  　　　USBケーブル&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;合計：１３１９円でした。&lt;br /&gt;&lt;br /&gt;あと、はんだこても購入しました。&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B001EHIVQ8&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;fig.9 　はんだこて&lt;br /&gt;&lt;br /&gt;やっと、準備が整いましたので、&lt;br /&gt;早速、やってみましょう!!&lt;br /&gt;&lt;br /&gt;まずは、購入してきた部品を基盤の適切な箇所にはんだ付けを行います。&lt;br /&gt;はんだ付け後の基盤を下記に示します。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-7roFbFyI/AAAAAAAAAEs/dOYHjXlSXzo/s1600-h/CIMG1223.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 183px; height: 137px;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-7roFbFyI/AAAAAAAAAEs/dOYHjXlSXzo/s320/CIMG1223.JPG" alt="" id="BLOGGER_PHOTO_ID_5282647246097815330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.10  1.水晶発振子、6.ジャンパ・ピン、&lt;br /&gt;　　　　3・4.ヘッダ・ピン、5.USB　Bタイプを&lt;br /&gt;　　　　実装した基盤&lt;br /&gt;&lt;br /&gt;次にPC(ホスト)に付属のデバイス・ドライバ(CP2102)をインストールし、&lt;br /&gt;USBケーブルをPC(ホスト)から、基盤に装着します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6vFXiK4KlUw/SU-7vgrJoKI/AAAAAAAAAE0/fH9mbHEclmY/s1600-h/CIMG1225.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 203px; height: 152px;" src="http://1.bp.blogspot.com/_6vFXiK4KlUw/SU-7vgrJoKI/AAAAAAAAAE0/fH9mbHEclmY/s320/CIMG1225.JPG" alt="" id="BLOGGER_PHOTO_ID_5282647312828047522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig.11    　USBそーちゃく!!&lt;br /&gt;&lt;br /&gt;デバイスドライバーより&lt;br /&gt;ポートの確認を行う(僕の場合：COM4)。&lt;br /&gt;次に&lt;a href="http://www.vector.co.jp/soft/win95/net/se320973.html"&gt;TeraTerm&lt;/a&gt;ソフトを使って、&lt;br /&gt;基盤からA-D変換データを表示します。&lt;br /&gt;下記に示します。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6vFXiK4KlUw/SU--foqpbyI/AAAAAAAAAE8/KImIAL1GJs0/s1600-h/teraterm.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 223px; height: 149px;" src="http://1.bp.blogspot.com/_6vFXiK4KlUw/SU--foqpbyI/AAAAAAAAAE8/KImIAL1GJs0/s320/teraterm.jpg" alt="" id="BLOGGER_PHOTO_ID_5282650338630397730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fig. 12  TeraTerm画面(A-D変換データ)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;とりあえず、今日はここまで!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-6093226337280313785?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/6093226337280313785/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=6093226337280313785' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/6093226337280313785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/6093226337280313785'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/12/interface-20075v850.html' title='Interface 2007年5月号　V850基盤でマイコン開発'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6vFXiK4KlUw/SU-zUM-psgI/AAAAAAAAAD0/Y7P9G4tspVo/s72-c/CIMG1213.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-629289858299390822</id><published>2008-12-22T17:21:00.001+09:00</published><updated>2008-12-22T17:22:30.701+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'></title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-629289858299390822?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/629289858299390822/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=629289858299390822' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/629289858299390822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/629289858299390822'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/12/blog-post_22.html' title=''/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-693981360814697334</id><published>2008-12-22T16:46:00.010+09:00</published><updated>2008-12-22T17:22:49.538+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>動画表示と静止画保存</title><content type='html'>前回の静止画を連続表示することで、&lt;br /&gt;動画を表示してみました(fig.1 左画像)。&lt;br /&gt;fi.1は、アプリケーションが起動すると、&lt;br /&gt;左側に動画を表示します。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU9Gdtr4lUI/AAAAAAAAADk/vlrIVZoTyDY/s1600-h/camera_20081222_2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 164px;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SU9Gdtr4lUI/AAAAAAAAADk/vlrIVZoTyDY/s320/camera_20081222_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5282518364222690626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;　　　　　　　　　　　　fig.1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;次に、前回の静止画処理を付け加えました(fig.2　右側)。&lt;br /&gt;左側の「ShowImage」ボタンを押すと、その瞬間の画像が&lt;br /&gt;右側のピクチャボックスに表示されます。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6vFXiK4KlUw/SU9HFfdzM8I/AAAAAAAAADs/2g_iODiWm8o/s1600-h/camera_20081222_1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 176px;" src="http://2.bp.blogspot.com/_6vFXiK4KlUw/SU9HFfdzM8I/AAAAAAAAADs/2g_iODiWm8o/s320/camera_20081222_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5282519047600288706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;　　　　　　　　　　　　　fig.2&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;※fig.1,2の画像は、カメラをディスプレイに向けて、撮影したものに&lt;br /&gt;なっています。再帰的になってますね^^&lt;br /&gt;&lt;br /&gt;以下にコードを示します。&lt;br /&gt;---------------------view.h&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;ref class&lt;/span&gt; cvView&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;private&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;public&lt;/span&gt;:&lt;br /&gt;CvCapture *capture;    &lt;span style="color: rgb(0, 153, 0);"&gt; //カメラキャプチャ用の構造体&lt;/span&gt;&lt;br /&gt;IplImage  *frameImage;&lt;br /&gt;IplImage  *Image;    &lt;span style="color: rgb(0, 153, 0);"&gt;//キャプチャ画像用のIplImage&lt;/span&gt;&lt;br /&gt;IplImage  *CaptureImage;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//デフォルトコンストラクタ(カメラ初期化含む)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;View(&lt;span style="color: rgb(51, 51, 255);"&gt;void&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; //カメラからの入力画像1フレームをframeImageに格納&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;void &lt;/span&gt;cvInputFrame(&lt;span style="color: rgb(51, 51, 255);"&gt;void&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//Imageの回転処理&lt;/span&gt;&lt;br /&gt;IplImage* cvSpinImage(IplImage* inputImage, int width, &lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;height, &lt;span style="color: rgb(51, 51, 255);"&gt;double &lt;/span&gt;angle, &lt;span style="color: rgb(51, 51, 255);"&gt;double&lt;/span&gt; scale);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//ImageをBitmap変換&lt;/span&gt;&lt;br /&gt;Bitmap^ cvConvertBitmap(&lt;span style="color: rgb(51, 51, 255);"&gt;char&lt;/span&gt;* imageData, &lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;imageSize, &lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;imageWidth, &lt;span style="color: rgb(51, 51, 255);"&gt;int &lt;/span&gt;imageHeight);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;----------------------view.cpp&lt;br /&gt;#include "StdAfx.h"&lt;br /&gt;#include "View.h"&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//デフォルトコンストラクタ&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;;void &lt;/span&gt;cvView::View(&lt;span style="color: rgb(51, 102, 255);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラ初期化&lt;/span&gt;&lt;br /&gt;capture = cvCreateCameraCapture(-1);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラからの入力画像1フレームをframeImageに格納&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;void &lt;/span&gt;cvView::cvInputFrame(&lt;span style="color: rgb(51, 102, 255);"&gt;void&lt;/span&gt;){&lt;br /&gt;&lt;br /&gt;frameImage = cvQueryFrame(capture);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//Imageの回転処理&lt;/span&gt;&lt;br /&gt;IplImage* cvView::cvSpinImage(IplImage* inputImage, &lt;span style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;width, &lt;span style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;height, &lt;span style="color: rgb(51, 102, 255);"&gt;double &lt;/span&gt;angle, double scale){&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//変換後の画像用IplImage&lt;/span&gt;&lt;br /&gt;IplImage* outputImage = cvCreateImage(cvGetSize(inputImage), IPL_DEPTH_8U, 3);&lt;br /&gt;CvPoint2D32f center = cvPoint2D32f(width/2.0, height/2.0);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//行列を生成する&lt;/span&gt;&lt;br /&gt;CvMat *rotationMatrix = cvCreateMat(2, 3, CV_32FC1);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//変換行列を求める&lt;/span&gt;&lt;br /&gt;cv2DRotationMatrix(center, angle, scale, rotationMatrix);&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; //画像の回転を行う&lt;/span&gt;&lt;br /&gt;cvWarpAffine(inputImage, outputImage, rotationMatrix, CV_INTER_LINEAR | CV_WARP_FILL_OUTLIERS, cvScalarAll(0));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;outputImage;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//ImageをBitmap変換&lt;/span&gt;&lt;br /&gt;Bitmap^ cvView::cvConvertBitmap(&lt;span style="color: rgb(51, 102, 255);"&gt;char&lt;/span&gt;* imageData, &lt;span style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;imageSize, &lt;span style="color: rgb(51, 102, 255);"&gt;int &lt;/span&gt;imageWidth, &lt;span style="color: rgb(51, 102, 255);"&gt;int&lt;/span&gt; imageHeight){&lt;br /&gt;&lt;br /&gt;        Bitmap^ bmp = gcnew Bitmap( imageWidth, imageHeight, Imaging::PixelFormat::Format24bppRgb);&lt;br /&gt;        Imaging::BitmapData^ bmpData;&lt;br /&gt;        bmpData = bmp-&gt;LockBits(System::Drawing::Rectangle(0, 0, bmp-&gt;Width, bmp-&gt;Height), Imaging::ImageLockMode::ReadWrite, bmp-&gt;PixelFormat );&lt;br /&gt;        memcpy( bmpData-&gt;Scan0.ToPointer(), imageData, imageSize );&lt;br /&gt;        bmp-&gt;UnlockBits(bmpData);&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(51, 102, 255);"&gt;return &lt;/span&gt;bmp;       &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;------------------------------------------Form1.h&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;private&lt;/span&gt;: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {&lt;br /&gt;          &lt;span style="color: rgb(0, 153, 0);"&gt;  //デフォルトコンストラクタ(カメラ初期化含む)&lt;/span&gt;&lt;br /&gt;            view.View();&lt;br /&gt;            this-&gt;label1-&gt;Text = "Find Camera";&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;        }&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;private&lt;/span&gt;: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {&lt;br /&gt;           &lt;span style="color: rgb(0, 153, 0);"&gt; //ShowInmage btn&lt;/span&gt;&lt;br /&gt;            view.cvInputFrame();&lt;br /&gt;&lt;br /&gt;            view.Image = view.cvSpinImage(view.frameImage,  view.frameImage-&gt;width, view.frameImage-&gt;height, ANGLE, SCALE);&lt;br /&gt;           &lt;span style="color: rgb(0, 153, 0);"&gt; //取得、加工した画像をピクチャボックスに表示&lt;/span&gt;&lt;br /&gt;            pictureBox2-&gt;Image = view.cvConvertBitmap(view.Image-&gt;imageData, view.Image-&gt;imageSize, view.Image-&gt;width, view.Image-&gt;height);&lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;private&lt;/span&gt;: System::Void pictureBox1_Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {&lt;br /&gt;            &lt;span style="color: rgb(0, 153, 0);"&gt;//動画表示&lt;/span&gt;&lt;br /&gt;           view.cvInputFrame();&lt;br /&gt;     &lt;br /&gt;           view.Image = view.cvSpinImage(view.frameImage,  view.frameImage-&gt;width, view.frameImage-&gt;height, ANGLE, SCALE);&lt;br /&gt;&lt;br /&gt;           pictureBox1-&gt;Image = view.cvConvertBitmap(view.Image-&gt;imageData, view.Image-&gt;imageSize, view.Image-&gt;width, view.Image-&gt;height);&lt;br /&gt;          &lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;private&lt;/span&gt;: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) {&lt;br /&gt;      &lt;span style="color: rgb(0, 153, 0);"&gt;  //ImageSave btn &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;             //画像を保存&lt;/span&gt;&lt;br /&gt;        cvSaveImage("testCapture.bmp",view.CaptureImage);&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;以上です＾＾&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-693981360814697334?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/693981360814697334/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=693981360814697334' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/693981360814697334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/693981360814697334'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/12/blog-post.html' title='動画表示と静止画保存'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6vFXiK4KlUw/SU9Gdtr4lUI/AAAAAAAAADk/vlrIVZoTyDY/s72-c/camera_20081222_2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-969292208157382056</id><published>2008-08-11T21:32:00.012+09:00</published><updated>2008-12-22T17:23:15.323+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>静止画像の表示</title><content type='html'>とりあえず、[ShowImage]buttonを押すとpictureBox1に静止画像を表示してみました(fig.1)。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SKAyXtAnXjI/AAAAAAAAACc/N_9xLImyDBM/s1600-h/WS000001.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SKAyXtAnXjI/AAAAAAAAACc/N_9xLImyDBM/s320/WS000001.JPG" alt="" id="BLOGGER_PHOTO_ID_5233238149805071922" border="0" /&gt;&lt;/a&gt;                                                　　　　　　　　　　　　　　　　　fig.1&lt;br /&gt;以下がインクルードファイルです。&lt;br /&gt;#include  "stdio.h"&lt;br /&gt;#include  "highgui.h"&lt;br /&gt;#include  "cvaux.h"&lt;stdio.h&gt;&lt;highgui.h&gt;&lt;cvaux.h&gt;&lt;br /&gt;&lt;br /&gt;以下がbutton event 内のソースになります。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラキャプチャ用の構造体&lt;/span&gt;&lt;br /&gt;CvCapture *capture;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;    //キャプチャ画像用のIplImage&lt;/span&gt;&lt;br /&gt;IplImage *Image;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラを初期化をする&lt;/span&gt;&lt;br /&gt;if((capture = cvCreateCameraCapture(-1)) == NULL){&lt;br /&gt;　　&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラが見つからなかった場合&lt;/span&gt;&lt;br /&gt;　　this-&gt;label1-&gt;ForeColor = System::Drawing::Color::Red;&lt;br /&gt;　　this-&gt;label1-&gt;Text = "Not Find Camera";&lt;br /&gt;　　return;&lt;br /&gt;}else{&lt;br /&gt;　　this-&gt;label1-&gt;Text = "Find Camera";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//カメラからの入力画像1フレームをframeImageに格納する&lt;/span&gt;&lt;br /&gt;Image = cvQueryFrame(capture);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//画像を生成する&lt;/span&gt;&lt;br /&gt;IplImage *frameImage = cvCreateImage(cvGetSize(Image), IPL_DEPTH_8U, 3);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//画像の中心を求める&lt;/span&gt;&lt;br /&gt;CvPoint2D32f center = cvPoint2D32f(Image-&gt;width/2.0, Image-&gt;height/2.0);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//行列を生成する&lt;/span&gt;&lt;br /&gt;CvMat *rotationMatrix = cvCreateMat(2,3,CV_32FC1);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//変換行列を求める&lt;/span&gt;&lt;br /&gt;cv2DRotationMatrix(center, ANGLE, SCALE, rotationMatrix);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//画像の回転を行う&lt;/span&gt;&lt;br /&gt;cvWarpAffine(Image, frameImage, rotationMatrix, CV_INTER_LINEAR |        CV_WARP_FILL_OUTLIERS, cvScalarAll(0));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//BMPCalssを用意&lt;/span&gt;&lt;br /&gt;Bitmap^ bmp = gcnew Bitmap( frameImage-&gt;width, frameImage-&gt;height,     　　Imaging::PixelFormat::Format24bppRgb);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//IplImageをBitmapに変換&lt;/span&gt;&lt;br /&gt;Imaging::BitmapData^ bmpData;&lt;br /&gt;bmpData = bmp-&gt;LockBits(System::Drawing::Rectangle(0, 0, bmp-&gt;Width, bmp-&gt;Height), Imaging::ImageLockMode::ReadWrite, bmp-&gt;PixelFormat );&lt;br /&gt;memcpy( bmpData-&gt;Scan0.ToPointer(), frameImage-&gt;imageData, frameImage-&gt;imageSize );&lt;br /&gt;bmp-&gt;UnlockBits(bmpData);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// ピクチャボックスに表示&lt;/span&gt;&lt;br /&gt;pictureBox1-&gt;Image = bmp;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//キャプチャを開放する&lt;/span&gt;&lt;br /&gt;cvReleaseCapture(&amp;amp;capture);&lt;br /&gt;&lt;br /&gt;以上。&lt;/cvaux.h&gt;&lt;/highgui.h&gt;&lt;/stdio.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-969292208157382056?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/969292208157382056/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=969292208157382056' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/969292208157382056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/969292208157382056'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/08/fig.html' title='静止画像の表示'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6vFXiK4KlUw/SKAyXtAnXjI/AAAAAAAAACc/N_9xLImyDBM/s72-c/WS000001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-5818979281996372662</id><published>2008-08-10T15:15:00.013+09:00</published><updated>2008-12-22T17:23:40.900+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>とりあえず、Sampleで画像を表示するアプリをつくってみました!</title><content type='html'>とりあえず、下記のようなSample　Formをつくりました(fig.1)。&lt;br /&gt;Sampleは、ShowImageボタンを押下すると、pictureBox1に画像表示されます。&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SJ6N_ZQ2uJI/AAAAAAAAACU/IZKvALxBUQ8/s1600-h/6.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SJ6N_ZQ2uJI/AAAAAAAAACU/IZKvALxBUQ8/s320/6.jpg" alt="" id="BLOGGER_PHOTO_ID_5232775937303951506" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　　                                             fig.1&lt;br /&gt;&lt;br /&gt;早速、#include "highgui.h"&lt;highgui.h&gt;&lt;highgui.h&gt;&lt;highgui.h&gt;を読み込むとエラー発生!(fig.2)&lt;br /&gt;&lt;br /&gt;&lt;/highgui.h&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ6JLPbd1xI/AAAAAAAAACE/JA61YObalSA/s1600-h/5.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ6JLPbd1xI/AAAAAAAAACE/JA61YObalSA/s320/5.jpg" alt="" id="BLOGGER_PHOTO_ID_5232770643264395026" border="0" /&gt;&lt;/a&gt;                                               　　　　　　　　　　　　　　　　　fig.2&lt;br /&gt;&lt;br /&gt;これは、何ですか?よく分りません。&lt;br /&gt;調べてみると、cxtypes.h"内 の 関数"cvRound()"の定義で、"__asm"を使っているからエラーが出ているようです。以下のサイトを参考にさせてもらいました。ありがとう、とりあえずエラーを回避できましたm(_ _)m。&lt;br /&gt;(&lt;a href="http://blog.moro-tyo.net/2006/06/" accesskey="1"&gt;参考url：机上の空論&lt;/a&gt;&lt;a href="http://blog.moro-tyo.net/2006/06/"&gt;&lt;span style="font-size:100%;"&gt;-2006年6月アーカイブ&lt;/span&gt;-&lt;/a&gt;&lt;a href="http://blog.moro-tyo.net/2006/06/"&gt;[メモ] VS2005 で OpenCV&lt;/a&gt;)&lt;highgui.h&gt;&lt;br /&gt;&lt;/highgui.h&gt;&lt;/highgui.h&gt;&lt;/highgui.h&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-5818979281996372662?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/5818979281996372662/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=5818979281996372662' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5818979281996372662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5818979281996372662'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/08/include-fig.html' title='とりあえず、Sampleで画像を表示するアプリをつくってみました!'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6vFXiK4KlUw/SJ6N_ZQ2uJI/AAAAAAAAACU/IZKvALxBUQ8/s72-c/6.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-5323950401279425350</id><published>2008-08-10T11:44:00.009+09:00</published><updated>2008-12-22T17:24:37.308+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>プロジェクトのPATH設定</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;プロジェクトの&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;PATH設定&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;次にメニューから[プロジェクト]を選択、プロジェクトの[プロジェクト名+プロパティ]選択すると、プロパティページダイアログが表示される。&lt;br /&gt;左側のツリー一覧の[構成プロパティ]⇒[リンカ]⇒[入力]を選択する。&lt;br /&gt;右側の追加ファイル項目に以下のlibを追加する(fig.1)。&lt;br /&gt;&lt;br /&gt;cvcam.lib highgui.lib cxts.lib cv.lib cxcore.lib ml.lib cvaux.lib cvhaartraining.lib&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5ZDml8MlI/AAAAAAAAABQ/pCi0cohkNTo/s1600-h/2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5ZDml8MlI/AAAAAAAAABQ/pCi0cohkNTo/s320/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5232717735485256274" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　fig.1&lt;br /&gt;入力が完了したら、[OK]でダイアログを閉じる。&lt;br /&gt;&lt;br /&gt;以上でVC++でのOpenCVの設定パスは終了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-5323950401279425350?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/5323950401279425350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=5323950401279425350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5323950401279425350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/5323950401279425350'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/08/visual-cwindowsokfig.html' title='プロジェクトのPATH設定'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5ZDml8MlI/AAAAAAAAABQ/pCi0cohkNTo/s72-c/2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-7352655160618295000</id><published>2008-08-06T21:01:00.010+09:00</published><updated>2008-12-22T17:24:54.809+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>VC++ 2005 　プロジェクト作成とVC++でのPATHの設定</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;プロジェクト作成&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;[ファイル]⇒[新しいプロジェクト]&lt;br /&gt;プロジェクトの種類を[Visual C++]、テンプレートを[Windowsフォームアプリケーション]を選択し、プロジェクト名を入力し、[OK]ボタンを押下する(fig.1)。&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5XUgqk6oI/AAAAAAAAABI/rgxgkaf0T_0/s1600-h/1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5XUgqk6oI/AAAAAAAAABI/rgxgkaf0T_0/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5232715826928609922" border="0" /&gt;&lt;/a&gt;                                                                                                                                       fig.1&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;VC++でのPATH設定&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SJmS4Vh7h8I/AAAAAAAAAAM/z7wqyygNmCQ/s1600-h/%E7%84%A1%E9%A1%8C.jpg"&gt;[ツール]⇒[オプション](fig.2)&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJmTnZ_SrhI/AAAAAAAAAAU/m3nVnawJ9oY/s1600-h/%E7%84%A1%E9%A1%8C.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJmTnZ_SrhI/AAAAAAAAAAU/m3nVnawJ9oY/s320/%E7%84%A1%E9%A1%8C.jpg" alt="" id="BLOGGER_PHOTO_ID_5231374747368074770" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　fig.2&lt;br /&gt;&lt;br /&gt;[オプション]ダイアログの左側メニュー⇒[プロジェクトおよびソリューション]⇒[VC++ディレクトリ]を選択する。右側の[ディレクトリを表示するプロジェクト]のプルダウンメニューより、[インクルードファイル]を選択する。(fig.3)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJmUofmaq_I/AAAAAAAAAAc/y8AVMFv8HLA/s1600-h/%E7%84%A1%E9%A1%8C1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6vFXiK4KlUw/SJmUofmaq_I/AAAAAAAAAAc/y8AVMFv8HLA/s320/%E7%84%A1%E9%A1%8C1.jpg" alt="" id="BLOGGER_PHOTO_ID_5231375865565850610" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　fig.3&lt;br /&gt;&lt;br /&gt;[新しい行]ボタンを押下し、以下のパスを追加する(fig.4)。&lt;br /&gt;&lt;br /&gt;C:\Program Files\OpenCV\cv\include&lt;br /&gt;C:\Program Files\OpenCV\cvaux\include&lt;br /&gt;C:\Program Files\OpenCV\cxcore\include&lt;br /&gt;C:\Program Files\OpenCV\otherlibs\highgui&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6vFXiK4KlUw/SJmVn8e5MoI/AAAAAAAAAAk/8LjUx4A1JkY/s1600-h/%E7%84%A1%E9%A1%8C2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6vFXiK4KlUw/SJmVn8e5MoI/AAAAAAAAAAk/8LjUx4A1JkY/s320/%E7%84%A1%E9%A1%8C2.jpg" alt="" id="BLOGGER_PHOTO_ID_5231376955650683522" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　                                              fig.4&lt;br /&gt;&lt;br /&gt;次に[ディレクトリを表示するプロジェクト]のプルダウンメニューより、[ライブラリファイル]を選択し、以下のパスを追加する(fig.5)。&lt;br /&gt;&lt;br /&gt;C:\Program Files\OpenCV\lib&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6vFXiK4KlUw/SJmWveB0_lI/AAAAAAAAAAs/GgcTXNjkeDU/s1600-h/%E7%84%A1%E9%A1%8C3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6vFXiK4KlUw/SJmWveB0_lI/AAAAAAAAAAs/GgcTXNjkeDU/s320/%E7%84%A1%E9%A1%8C3.jpg" alt="" id="BLOGGER_PHOTO_ID_5231378184426290770" border="0" /&gt;&lt;/a&gt;　　　　　　　　　　　　　　　　fig.5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;以上で、Visual Studio C++ 2005　側の設定が終了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-7352655160618295000?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/7352655160618295000/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=7352655160618295000' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/7352655160618295000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/7352655160618295000'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/08/vc-2005-bli.html' title='VC++ 2005 　プロジェクト作成とVC++でのPATHの設定'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6vFXiK4KlUw/SJ5XUgqk6oI/AAAAAAAAABI/rgxgkaf0T_0/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8128827555460626166.post-8255621209965278959</id><published>2008-08-05T07:19:00.018+09:00</published><updated>2008-12-22T17:25:34.994+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebCamera'/><title type='text'>OpenCV for VC++2005</title><content type='html'>OpenCV(Open Source Computer Vision Library)とは、Intelが公開している画像処理ライブラリです。これを用いれば、動体検知やエッジ検出などの画像処理が比較的簡単にできます。&lt;br /&gt;&lt;br /&gt;OpenCVでなにか作りたいなって事で、そのメモにBlogを使用します。&lt;br /&gt;以下に環境を示します。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;環境&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OS：Windows Vista Home Premium&lt;br /&gt;プロセッサ：2.66GHz&lt;br /&gt;メモリ：2GB&lt;br /&gt;&lt;br /&gt;開発環境:Microsoft Visual C++ 2005&lt;br /&gt;使用カメラ：CMS-V22SETBK(url:http://www.sanwa.co.jp/product/syohin.asp?code=CMS-V22SETBK&amp;amp;cate=1)&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=B000N2HA62&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=FFFFFF&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;そして、OpenCVです。&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=sto121-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=483992354X&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=FFFFFF&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OpenCVは以下からダウンロードします。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/opencvlibrary/" rel="nofollow"&gt;http://sourceforge.net/projects/opencvlibrary/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;ダウンロード&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;上記のサイトの[Download Open Computer Vision Library]をクリックします。&lt;br /&gt;遷移したページのLatest File Releases表内のOpenCV_1.0.exeをダウンロードします。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;インストール&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;次にOpenCVをインストールします。&lt;br /&gt;ダウンロードしたOpenCV_1.0.exeを実行します。&lt;br /&gt;以下にインストール手順を示します。&lt;br /&gt;&lt;br /&gt;1.[Next]⇒[I accept the agreement]にチェック&lt;br /&gt;2.Next⇒Next⇒Next⇒[Add&lt;....&gt;\OpenCV\bin to the System PATH]にチェック&lt;br /&gt;3.Next⇒Install でインストール開始&lt;br /&gt;4.Finishでインストール完了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8128827555460626166-8255621209965278959?l=sto-stostoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sto-stostoblog.blogspot.com/feeds/8255621209965278959/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8128827555460626166&amp;postID=8255621209965278959' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/8255621209965278959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8128827555460626166/posts/default/8255621209965278959'/><link rel='alternate' type='text/html' href='http://sto-stostoblog.blogspot.com/2008/08/opencv-for-vc2005.html' title='OpenCV for VC++2005'/><author><name>sto</name><uri>http://www.blogger.com/profile/14207262614914417297</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_6vFXiK4KlUw/SJ5Vjevg9SI/AAAAAAAAABA/rqRb6IVmHI4/s1600-R/CIMG0476.JPG'/></author><thr:total>0</thr:total></entry></feed>
