C言語なら俺に聞け(入門編)Part 104
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/07/15(日) 10:28:33.18★前スレ
C言語なら俺に聞け(入門編)Part 103
http://toro.2ch.net/test/read.cgi/tech/1341059858/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 158代目
http://toro.2ch.net/test/read.cgi/tech/1339338438/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん
2012/07/15(日) 12:11:11.900003デフォルトの名無しさん
2012/07/16(月) 04:57:46.240004デフォルトの名無しさん
2012/07/16(月) 08:34:24.170005デフォルトの名無しさん
2012/07/16(月) 10:59:40.71「私がひそかに満足していることのひとつは,
オープンソースの多くのものが,私が寄与したコードに基づいていることです」
「その仕事に合った道具を選びなさい(中略)
ある仕事のために新しい特殊なツールを作成する方法について考えるべきときもあります」
Dennis M. Ritchie
偉大なるプログラマからのメッセージ|Cマガジン1999年10月号31,32ページ
訃報: C 言語の開発者、デニス・リッチー氏が死去
http://toro.2ch.net/test/read.cgi/tech/1318481715/23
0006デフォルトの名無しさん
2012/07/17(火) 11:00:40.330007デフォルトの名無しさん
2012/07/17(火) 11:12:05.68http://www.bell-labs.com/history/unix/firstport.html
0008デフォルトの名無しさん
2012/07/17(火) 19:58:01.320009デフォルトの名無しさん
2012/07/17(火) 20:10:56.10お、犬もイケる口か
0010デフォルトの名無しさん
2012/07/18(水) 09:46:40.940011デフォルトの名無しさん
2012/07/18(水) 17:07:26.78コンパイラ bcc32 で勉強中なんですけど、、、
ソース
http://codepad.org/X6tDn8V6
実行例
argv[0]に入っている文字列:C:\temp\test\test01.exe
argv[0]の長さ:23
このプログラムの名前は test01 です
argv[0]に入っているプログラムの名称(ここではtest01)の
表示まではなんとかかんとかできたんですが^^;この
文字列を *pgname にコピーしたいのですが、
どのようにすれば良いの?
0012デフォルトの名無しさん
2012/07/18(水) 17:37:42.290013デフォルトの名無しさん
2012/07/18(水) 17:51:03.680014デフォルトの名無しさん
2012/07/18(水) 18:05:14.80cFileNameの最後の"."(ドット)を\0に書き換える。
WIN32_FIND_DATA構造体のcFileNameの先頭アドレスをpgnameにコピー
0015デフォルトの名無しさん
2012/07/18(水) 18:15:26.88pgnameがただ参照するだけの目的なら、
pgname = & str[last_yen];
でOK。
書き換えを伴うと言うのなら、malloc()でメモリ確保して云々。
0016デフォルトの名無しさん
2012/07/18(水) 18:21:45.60> pgname = & str[last_yen];
多分、それをやると".exe"も見えちゃう。
まぁ >>11 が何がしたいか良く分からないけど。
0017デフォルトの名無しさん
2012/07/18(水) 18:31:49.160018デフォルトの名無しさん
2012/07/18(水) 20:24:22.64#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
char str[300];
char *pgname;
char *p_last_dot, *p_last_yen;
memset(str,0,sizeof(str)); //配列初期化
printf("argv[0]に入っている文字列:%s\n",argv[0]);
printf("argv[0]の長さ:%d\n",strlen(argv[0]));
p_last_yen = strrchr(argv[0], '\\');
if(p_last_yen == NULL) p_last_yen = argv[0] - 1;
p_last_dot = strrchr(argv[0], '.');
if(p_last_dot == NULL) p_last_dot = argv[0] + strlen(argv[0]);
else if(p_last_dot < p_last_yen) p_last_dot = argv[0] + strlen(argv[0]);
strncpy(str,p_last_yen + 1, p_last_dot - p_last_yen - 1);
printf("このプログラムの名前は %s です\n", str);
pgname = str;
printf("pgname %s\n",pgname);
return 0;
}
// なんか、どっか、ポインタ間違ってそうだな。。。
0019デフォルトの名無しさん
2012/07/18(水) 20:36:46.400020デフォルトの名無しさん
2012/07/18(水) 20:40:46.10002111
2012/07/18(水) 21:09:39.17まぁなんとなくみたいな感じで作ってるんでかなり?かも知れませんが^^;
pgnameは参照のみでこちらで書換えたりとかの予定はないです。
何がしたいかっていうと、、、例えばヘルプで使用方法を出したりするじゃないですか。
その時にプログラム名がリネームされても変更後の名前で表示できるようにと。
道はかなり遠大な感もしますが^^;
0022デフォルトの名無しさん
2012/07/19(木) 02:37:15.32本物のプログラマはC/C++を使わない。C/C++は白ブリーフを穿いた職人気取りの喪男や、マクロフリークや、make好きのUNIXerどもが使うものだ。奴らは関数ポインタと多重継承で喜ぶ。
本物のプログラマはJavaを使わない。Javaはちんけなアプリケーションプログラマが使うものだ。
本物のプログラマはVBなど書かない。一般に、12歳以上になってVBを書くプログラマはいない。
本物のプログラマは文書を書かない。文書は設定ファイルやSQLを読めない馬鹿のためにあるのだ。
本物のプログラマはPerlだのPythonだのRubyだの、その他もろもろの怠惰で短気で傲慢じみたスクリプト言語は使わない。インタプリタはオツムの弱い奴らのためのものだ。
本物のプログラマはオブジェクト指向を理想主義者の陰謀だと考えている。
本物のプログラマはC#など使わない。C#はJavaとC/C++のどちらも選べない過保護なガキのためにあるのだ。
本物のプログラマはJavaScriptなど使わない(プログラム全体を1行で書けない限りは)。
本物のプログラマはPHPなど使わない。実際のコードより多くの括弧を使うのは女々しいのだ。
本物のプログラマはAjaxを軽蔑する。Ajaxは``クモの巣に囚われている''ニヤけた寝小便たれどものためにあるのだ。
本物のプログラマはHTMLがマークアップ言語であり、プログラミング言語でないと知っている。プログラミング言語であると主張するのは泣き虫のXML書きに後押しされたTeX使いの陰謀だ。
0023デフォルトの名無しさん
2012/07/19(木) 03:35:20.02コーダーの仕事と、分かれていた時代もあったらしい。
0024デフォルトの名無しさん
2012/07/19(木) 03:36:36.100025デフォルトの名無しさん
2012/07/19(木) 03:41:17.590026デフォルトの名無しさん
2012/07/19(木) 05:00:53.75ttp://www.geocities.jp/ayashii77777/photos/punch.jpg
0027デフォルトの名無しさん
2012/07/19(木) 05:05:59.52↓ これ見ただけで、いろいろ分かるらしい
ttp://www.frontier-line.org/K-Nambu-PhD/wp-content/uploads/2010/06/085-04.png
C言語ってレベルじゃないけどな
0028デフォルトの名無しさん
2012/07/19(木) 08:27:29.58実際、ビットパターンと同じ要領で読むことができないわけでもない。
0029デフォルトの名無しさん
2012/07/19(木) 08:39:25.38むかし基本情報でやったような記憶がある
0030デフォルトの名無しさん
2012/07/19(木) 08:44:07.96http://ec2.images-amazon.com/images/I/41rnKHk1QPL._SS500_.jpg
0031デフォルトの名無しさん
2012/07/19(木) 08:45:26.220032デフォルトの名無しさん
2012/07/19(木) 09:08:13.650033デフォルトの名無しさん
2012/07/19(木) 09:22:04.33http://engawa.2ch.net/test/read.cgi/poverty/1342639945/
県内初 ヒラメ由来の食中毒
今月14日、新庄市内の飲食店でヒラメの刺身を食べた5人が下痢や吐き気などの食中毒の症状を訴え、原因は、
ヒラメに特有の寄生虫とわかりました。
この寄生虫が原因の食中毒が確認されるのは県内で初めてです。
県によりますと、今月14日午後、新庄市内の飲食店で、韓国産の養殖ヒラメの刺身を食べた5人がその日の夜に
かけて次々に下痢や吐き気などの症状を訴えて病院に運ばれ、1人が入院しました。
県によりますと全員快方に向かっていて入院した1人もすでに退院しているということです。
県が飲食店に保管されていた残りのヒラメを回収して調べたところ、「クドア・セプテンプンクタータ」という寄
生虫が見つかり、食中毒が原因と断定しました。
この寄生虫は、おもにヒラメの刺身に寄生し、全国的に食中毒が相次いだことをうけ厚生労働省は去年6月、都道
府県などに注意を呼びかけていましたが、県内で確認されたのは今回が初めてです。
県によりますと、国内で養殖されるヒラメは出荷前に寄生虫がいないか検査が行われているということです。
http://www.nhk.or.jp/lnews/yamagata/6023681251.html
0034デフォルトの名無しさん
2012/07/19(木) 10:59:41.88ぶっちゃけ機械語も
CPUというハードウェアインタプリタへのスクリプトという気もする
0035デフォルトの名無しさん
2012/07/19(木) 11:04:23.66マシン語もソフトウェアだ。
0036デフォルトの名無しさん
2012/07/19(木) 11:05:36.030037デフォルトの名無しさん
2012/07/19(木) 11:06:30.100038デフォルトの名無しさん
2012/07/19(木) 11:11:17.460039デフォルトの名無しさん
2012/07/19(木) 11:14:52.44あー だから
スクリプト言語でのインタプリタはソフトウェア、
機械語でのインタプリタはCPUそのもの、ハードウェアで直接やってる
でどうだ
って話さ
0040デフォルトの名無しさん
2012/07/19(木) 11:32:05.65表現を逐次解釈しながら実行するプログラムのこと。
0041デフォルトの名無しさん
2012/07/19(木) 11:33:41.60ttp://blog.livedoor.jp/goldennews/imgs2/0910/g1001005.jpg
0042デフォルトの名無しさん
2012/07/19(木) 11:37:52.80インタプリタそのものをシリコンで実装すんだよ
0043デフォルトの名無しさん
2012/07/19(木) 11:57:07.770044デフォルトの名無しさん
2012/07/19(木) 12:31:04.990045デフォルトの名無しさん
2012/07/19(木) 12:43:31.760046デフォルトの名無しさん
2012/07/19(木) 13:08:12.70質問させてください。
edのようなラインエディタを作りたいのですが、
バッファや行管理はどのようにすればよいでしょう。
ソースの提示まではいらないので概念?のようなもの
を教えてください。
0047デフォルトの名無しさん
2012/07/19(木) 13:18:43.98ttp://www.amazon.co.jp/dp/4822281019
これ読んでろ。
0048デフォルトの名無しさん
2012/07/19(木) 13:33:46.690049デフォルトの名無しさん
2012/07/19(木) 14:41:25.66実装したことはないんだが、
テキストエディタのデータ構造は意外にややこしくて、それだけで一つの分野
ギャップバッファとかでぐぐるといい
0050デフォルトの名無しさん
2012/07/19(木) 15:21:02.43struct {
void *pNae; //前の行
char *pData;//行の内容
void *pTugi //次の行
};
こんな感じの構造体を1行に付き1つ作る。
バッファは初めに大きく確保するか1行毎に確保するか好みで。
0051デフォルトの名無しさん
2012/07/19(木) 18:18:11.750052デフォルトの名無しさん
2012/07/19(木) 21:31:37.53アクションゲームとか作りたい。
0053デフォルトの名無しさん
2012/07/19(木) 21:35:29.670054デフォルトの名無しさん
2012/07/19(木) 21:48:58.96それも禁止するとしたら?
0055デフォルトの名無しさん
2012/07/19(木) 21:56:14.15後からこれはダメあれはダメ言われちゃかなわんよ
0056デフォルトの名無しさん
2012/07/19(木) 21:57:15.810057デフォルトの名無しさん
2012/07/19(木) 21:58:08.59http://toro.2ch.net/test/read.cgi/tech/1342423314/l100
↑
スレタイからして意味不明。
int str[100]
strがマジックナンバー?
0058デフォルトの名無しさん
2012/07/19(木) 21:59:02.68Javaならthredクラスがあるけど。
0059デフォルトの名無しさん
2012/07/19(木) 22:03:11.420060デフォルトの名無しさん
2012/07/19(木) 22:12:28.86max=16;
int str[max];
とするより
int str[16]のほうがソースコードが短くなり
容量も減ると思うのですが。
0061デフォルトの名無しさん
2012/07/19(木) 22:16:11.38エディタの一括修正でいいやんけと言うなら
また違った意味で16を他の変数に使っていたら?
0062デフォルトの名無しさん
2012/07/19(木) 22:19:58.88コードのあちこちに 5 とか 1024 とか 0666 が散りばめられているときに、そのコードを理解したり修正するのは大変だろう。
#define N 5
#define BUFFSIZE 1024
#define RW 0666
などなんとか意味を感じられるようにすることが推奨されている。
一見して由来のわからないイミーディエイト値のことを皮肉をこめて「魔法の数字」と呼んでいるようだ。
#define か enum 八苦を使うのがいいでしょうね。
0064デフォルトの名無しさん
2012/07/19(木) 22:29:56.70修正って何?
修正したらいいじゃない。
0065デフォルトの名無しさん
2012/07/19(木) 22:39:00.230066デフォルトの名無しさん
2012/07/19(木) 22:47:35.740067デフォルトの名無しさん
2012/07/19(木) 22:52:07.030068デフォルトの名無しさん
2012/07/19(木) 22:54:58.75ナマポが使える。
しかし最近はCPUすら仮想化されてるからなあ
仮想CPUでも高速化テクニックってのは通用するんだよね
仮想マシン前提のノウハウとかあんのかな
0069デフォルトの名無しさん
2012/07/19(木) 22:59:47.25職場の先輩が昔受けた仕事で
「数値直接使用禁止。必ず#define登録しろ。」
というルールがあったとか言われた。
0070デフォルトの名無しさん
2012/07/19(木) 23:32:10.950071デフォルトの名無しさん
2012/07/20(金) 00:33:50.19int N=100
の違いって何よ
0072デフォルトの名無しさん
2012/07/20(金) 00:52:20.15#define N 100は、デバッグ時に確認できない。
あと、グローバル変数では無いけれど、それと同様に扱える。
まぁ、定数というところ。
int N=100は、あくまでint型のNを100で初期化したもの。
0073デフォルトの名無しさん
2012/07/20(金) 00:56:53.230074デフォルトの名無しさん
2012/07/20(金) 01:09:16.79左辺値になれる
0075デフォルトの名無しさん
2012/07/20(金) 01:36:48.72http://news.nicovideo.jp/watch/nw314727
「真正なる右翼は、日本に私ただ一人である。有権者諸君、我が国は今、大きく舵を切るべき瞬間を迎えている。
日本が取れる指針はもはや少なく、残された時間には猶予もない。」
いきなり何だと思われたかもしれませんが、これは大日本サムライガールという小説のヒロイン、
神楽日毬(かぐらひまり)ちゃんの決め台詞なのです。
いや、決め台詞というのもふさわしくないか。街頭演説の時の前口上なのです。
何ともすごい小説が出てきました。この本は真に日本を憂うあまり、自らが独裁政権を敷くしかないという結論に達した
真正右翼の16歳の美少女ヒロインと、そんなヒロインを陰に日向に支える主人公織葉颯斗(おりばはやと)くんのお話なのです。
http://news.nicovideo.jp/photo2/229868l.jpg
『大日本サムライガール』至道流星/星海社FICTIONS
この表紙の少女が神楽日毬ちゃんです。手に持っているのは愛用の拡声器「拡さん」。
この少女が、政治の頂点を目指すために、アイドルとして芸能界の頂点を目指すのです!
0076デフォルトの名無しさん
2012/07/20(金) 07:26:51.080078デフォルトの名無しさん
2012/07/20(金) 09:13:39.82情報筋によると、イギリスの運輸省は、ロンドンと主要都市を結ぶ高速鉄道に使用される車輌の製造において、
日立製作所グループとの交渉が最終段階に入っていることをオリンピックの開会前に正式に発表する予定だといいます。
それによると、イギリスのファースト・グレート・ウェスタン・レール社は、2016年までに、500台の車輌を日本から輸入。
車輌はほとんどが広島県の日立製作所笠戸事業所で組み立てられるため、イギリスの評論家たちは
製造費10億ポンド(約1,230億円)にも及ぶ雇用機会をみすみす失ったと政府を批判しているということです。
これに対して(海外に流出できない)独自の高価な技術を使用するためと、日本国内での車輌の製造を譲らなかった
日立製作所笠戸事業所長の正井健太郎氏は「車輌の製造に関われる誇りを感じます。
安全と信頼性に長けた日本のテクノロジーで製造された車輌は、
乗客に対してもスムーズな乗心地を感じてもらえることでしょう」と述べています。
http://chiquita.blog17.fc2.com/blog-entry-6607.html
0079デフォルトの名無しさん
2012/07/20(金) 10:05:40.16POSIX C言語
ぐぐれ
0080デフォルトの名無しさん
2012/07/20(金) 10:23:20.400081デフォルトの名無しさん
2012/07/20(金) 10:40:09.79perlがイイ!!
0082デフォルトの名無しさん
2012/07/20(金) 10:52:04.650083デフォルトの名無しさん
2012/07/20(金) 19:29:40.09現在、「C言語超入門―Windowsでゲームボーイのプログラムを作ろう! 」を使って勉強しています。
この本を最初の教科書として、学び始めました。次に読む本として何が良いかアドバイスをお願いします。
ゲームボーイに絡めて勉強したらモチベを保てるのではないかと思い、この本から始めました。
専門学校に通っているわけではなく、独学でやっています。
皆さんのお勧めの入門書を教えてください。
0084デフォルトの名無しさん
2012/07/20(金) 19:31:22.750085デフォルトの名無しさん
2012/07/20(金) 20:41:36.44「プログラミング作法」
〜書法、の方じゃないから注意な。
0086デフォルトの名無しさん
2012/07/20(金) 21:52:31.680087デフォルトの名無しさん
2012/07/20(金) 22:24:03.18GBAとかの方が楽な気がする。
0088デフォルトの名無しさん
2012/07/20(金) 22:32:23.11いやこの本は凄く分かりやすい
200ページちょいしかなくて、俺が初心者だった大学1年の頃にすらすら最後まで通読できた
絶版でもう売ってないんだけどマジ良書
0089デフォルトの名無しさん
2012/07/20(金) 22:41:05.150090デフォルトの名無しさん
2012/07/20(金) 22:45:03.680091デフォルトの名無しさん
2012/07/21(土) 05:20:06.220092デフォルトの名無しさん
2012/07/21(土) 06:39:57.920093デフォルトの名無しさん
2012/07/21(土) 08:35:15.11さまざまな意見が寄せられた。
スレ主は、日本の食文化について言及し、日本では食に対するこだわりが深い人が多く、製菓技術や製パンは世界に誇れる水準であり、
ビールも同様に世界で認められているものの一つだと述べた。一方、韓国産のビールはまだまだ改善の余地があり、
新規参入による市場の拡大が望まれると指摘した。
スレッドにはスレ主に対して同意し、日本の食文化について称賛する声が多数並んだ。
・「日本は食文化、特にグルメへのこだわりがすごいと思います。外国の食文化を受け入れ、百年以上の探求を経て、
トップレベルにした。ビールも同じ」
・「率直にいって、日本の食べ物はおいしいものばかり」
・「日本は、国内市場があまりにも大きい。それに比べ、わが国の内需市場はすかすか」
また、韓国内のビールメーカーなどを批判する声もみられた。
・「韓国のビール会社のマインドは最悪」
・「韓国ビールは日本でいえば、ビアテイスト飲料」
・「わが国のビールは日本では発泡酒。ビールと呼ばれること自体、恥ずかしくなる粗雑なもの」
むしろ、北朝鮮のビールの方がおいしいのではといった発言も見られ、韓国人がビールに対して高い関心を寄せている様子がうかがえる。
・「聞いた話だが、北朝鮮のビールの味が韓国産のビールの味よりいいらしい。技術的な問題ではなく、制度や材料が大きな違いをもたらすのでは」
・「わが国のビールがまずい理由は、小規模な醸造所の法的な問題から構造の問題までたくさん。北朝鮮のビールと韓国のビールは、簡単に比較できません」
(編集担当:李信恵・山口幸治)
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0719&f=national_0719_018.shtml
0094デフォルトの名無しさん
2012/07/21(土) 11:12:10.400095デフォルトの名無しさん
2012/07/21(土) 17:54:29.48なんでですか?
http://ideone.com/R8do8#ul_inouterr
0096デフォルトの名無しさん
2012/07/21(土) 18:13:26.45/ミミ\\\\ \
/ミミミ\\\\\\\
/彡ミミミ\\\\\\\\
|彡ミミ/\\\\\\\\|
|彡 | \\\\\\\|
ヽ |へ、_ _,へ\\\\/
| __ __ | / ) gets()
| |/ ノ
| ( / _ ) / おひさしぶりーふ
ヽ ヽ |
ヽ ヽー‐‐‐ァ /\
//ヽ ヽ-‐' / /\ \
/ / ヽ_ / / / \
/ \ |\ /| /\ \
(⌒\ / (⌒ヽ |二| | / \ \
__ゝ ヽ ___ ゝ \ \| / / |
( ヽ─ ( l ) ヽヽ / / / |
 ̄ ̄( ̄丿 |  ̄ ̄( ̄ ゝ \ / / |
( ̄ノ | ( ̄ ゝ | ̄ ̄ ̄ ̄ |
( ̄ノ | ( ̄ ゝ |
0097デフォルトの名無しさん
2012/07/21(土) 18:24:39.22このプログラムいつ終わるの?
0098デフォルトの名無しさん
2012/07/21(土) 18:36:40.890099デフォルトの名無しさん
2012/07/21(土) 19:50:05.700100デフォルトの名無しさん
2012/07/21(土) 20:50:30.430101デフォルトの名無しさん
2012/07/21(土) 20:52:34.13http://ideone.com/QkwnG
0102デフォルトの名無しさん
2012/07/22(日) 10:16:31.58米国 「今のままなら朝鮮戦争が再開しても、日本は韓国に協力せず、無視することができる」
http://hayabusa3.2ch.net/test/read.cgi/news/1342918828/
韓国が日韓軍事協定を破棄したことで生じた問題
両国間協力の座礁は、オバマ政権だけでなく、ブッシュ政権で
北東アジア政策を担当した筆者にとっても大きな失望だ。
韓日間の安保協力が突然、暗礁に乗り上げた。
最近問題になった情報交流協定のためだ。
また最近、日本の政治は右傾化し、日韓共同防衛協力を抜け出して日本独自に動こうとしている。
マイケル・グリーン米戦略国際問題研究所(CSIS)日本室長 .
2012/7/21
http://japanese.joins.com/article/994/155994.html?servcode=100§code=140
0103デフォルトの名無しさん
2012/07/22(日) 10:24:28.29変数wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0104デフォルトの名無しさん
2012/07/23(月) 02:32:29.46これはどういった働きをするんでしょうか?
0105デフォルトの名無しさん
2012/07/23(月) 03:55:40.74見たこと無いのだが。
というか、それはどこに出てきたのでしょうか。
ただ、よくあるパターンとしては
EXCELの関数では
bin2decとかhex2decとかoct2decで
2進数だったり、16進数だったり、8進数だったりを10進数に変換する。
んで、そういう機能をC言語でする場合、
そのような名前の関数を作る事がある。
(ユーザ関数なので、名前はなんでも良いんだけど。)
そのパターンで考えると
quin → quintuple → 5倍
で、多分5進数を10進数に変換する関数っぽいけど、
所詮、ユーザ関数だから正しくは分からない。
もちろんquinさんを10進数に変換するとも考えられる。
0106デフォルトの名無しさん
2012/07/23(月) 04:33:50.43おお、ユーザー関数なんてものがあるのですか。
通りで検索してもでてこないわけだ。
おっしゃる通り五進法を十進法に変換せよ、という問題で出てきました。
0107デフォルトの名無しさん
2012/07/23(月) 05:36:56.10多々あったので質問させてください。
問題文
http://ideone.com/WnbTA
コード
http://codepad.org/nqyygUO9
・#define N 1024は何を意味しているのか
・quin2decが引数として文字を4つ受け取っているのはどこか
・どこで戻り値として返しているか
・受け取る五進数は4桁以下の非負正数(十進法の0〜624)であると仮定する、とありますが
どこで仮定されているのか、あるいはもし仮定されていないならどうすれば良いか
・static char buff[N]; が何を意味しているのか
宿題スレでコードを貰っておきながらこちらで聞くのもどうかと思うのですが、
どうしてもわからなかったのでこちらで質問させていただきました。
よろしくお願いします
0108デフォルトの名無しさん
2012/07/23(月) 06:02:51.71gameboyはbios用意しなくていいから問題ないっしょ
0109デフォルトの名無しさん
2012/07/23(月) 07:03:35.31まぁ、マニアックなコードだな。
質問>・quin2decが引数として文字を4つ受け取っているのはどこか
問題文>4つの文字を引数として受けとる
確かに単文で見た場合、
「4個の(文字を)引数として受け取る」と読めなくもないが、
「4種類の文字を引数として受け取る」とも読めるし、「4桁の文字を引数として受け取る」とも読める。
それぞれの返答は
・quin2decは4種類の文字(列)を1つ受け取る。
・コード内で4桁に制限してる箇所は・・・ないね。問題文でも4桁以外の桁数だった場合どうするとか書いていないから、
コードを書いた人が、プログラムの前提条件として受け取ったんだろうね。
・4種類のチェックを行っている部分は switch文
質問>どこで戻り値として返しているか
これは「戻り値」を返す方法は勉強している(もしくは教科書に書いてある)と思う。
返答としては31行目のreturn文なんだけど、再帰呼び出し(ある関数の中で、自分自身(の関数)を呼び出してる)をしているからイメージ沸きにくいかもね。再帰呼び出しで調べてね。
質問>・受け取る五進数は4桁以下の非負正数(十進法の0〜624)であると仮定する、とありますが・・・
受け取る文字列の種類として負を表す文字自体がなく、「r,h,f,m,y以外の文字を受け取ったらエラーとする」ので気にしなくて良いと思う。
質問>・#define N 1024は何を意味しているのか
質問>・static char buff[N]; が何を意味しているのか
Nを利用している箇所は static char buff[N]; と fgets(buff, N, stdin);の二ヶ所である。
問題文では「キーボードから文字列として受け取り」とある。
受け取る領域(入れ物)が必要である。static char buff[N];はそれを用意している。その際、領域の大きさ(N)を何かしら決める必要がある。
問題文としては「4桁の5進数」とあるから、4文字分+(改行コード分またはnull終端分)が必要最低限なのだが、
「4文字以上の文字列を受け取らない」とはあるが、キー入力される文字数は制限されていない。
そうした場合、十分な大きい値(1024)を用意したという事だと思う。
#define とは何かという質問だったら、教科書調べてね。
長いね。
0110デフォルトの名無しさん
2012/07/23(月) 07:41:35.79長々と説明ありがとうございます、おかげさまである程度理解ができました。
ただ、引数に関してがイマイチわからないのですが、単純に引数として受け取ってるのは
y,m,f,hであり、swich文で入力した文字がそれに該当してるか調べてcaseで分けているということなんでしょうか?
戻り値については早速再帰呼び出しで調べて学習してきます。
#define文自体は調べて理解していたのですが、1024という数字の意味が理解できていませんでした。
領域の大きさを決める数字と聞いて納得できました。
0111109
2012/07/23(月) 08:24:22.91あ、そもそも5進数だし、「r,h,f,m,y」と書いてあるのだから、5種類の文字だね。。。あほだ。。。
>>110
私が質問の意図を理解していないから上手く説明できてないのだね。
>・quin2decが引数として文字を4つ受け取っているのはどこか
「quin2decが4つの引数を受け取っていない事を疑問に思っている」と読み取って良いかな?
int quin2dec(char *s, int n)
それに対する返答は「4桁の文字列として、一つの引数(s)を受け取っている」から。
ただし、実際には、コードは桁数(4桁以内である事)のチェックはされていない。「なぜチェックしていないのか」は、
多分、「問題文に桁数が不正の場合、どうするのか」が指定されていないからだと思う。
まぁ、もちろん 「int quin2dec(char a,char b,char c,char d)」として4つ受け取ってもコードを書いても良いのだけど。
ただ、こうした場合、3桁の文字が入力された場合、困るかな。
あ、「受け取った4文字中r,h,f,m,y以外の文字が一文字でも含まれた場合エラーメッセージを出してプログラムを終了する。」
quin2decが「r,h,f,m,y」以外の文字を受け取っちゃいけないとは、書いてないからいいか。
まぁ、C言語と言うより、「4つの文字を引数として受けとる 」の問題文の解釈の話のような気がする。
「引数を4つにしないといけない」と読むか、「引数を4桁の文字列として受けとれば良い」と読むか。
とんちんかんな回答かな?
0112109
2012/07/23(月) 08:36:19.66あ、ちょっと勘違いしてそうなんで補足
>戻り値については早速再帰呼び出しで調べて学習してきます。
「再帰呼び出し」と「戻り値」は直接は関係ないよ。
「再帰呼び出し」がどういう動きをするかを勉強した方が良いよ。
で、「再帰呼び出し」をした結果、それぞれの「戻り値」がどうなるか、がややこしい(かも)。
と言うことね。
まぁ、これは、地道にそれぞれのステップを追って(プログラムが動いている順番を追って)、
その時の変数や戻り値がどうなっているかを書き出してみるのが確実だよ。
0113デフォルトの名無しさん
2012/07/23(月) 08:40:54.94わざわざありがとうございます。
私の知識が足りないので何を疑問に思っているのかが上手く伝えられていないんだと思います。
おっしゃる通りquin2decが4つの引数を受け取っていないのが疑問でした。
私の手元の参考書と比較するとquin2dec(char *s,int n)の*sとnを仮引数として受け取るのかな、と考えたのですが
それだと仮引数が2つだけで、私は「引数を4つにしないといけない」と捉えたので2つ足りない事に疑問を感じていました。
分かりにくい質問だらけで申し訳ないのですが教えていただけるとありがたいです
0114109
2012/07/23(月) 09:41:20.81このコードで、引数(s)と、引数(n)とはそれぞれ何を表しているのか。ということですね。
すんません。quin2decについて、真っ当に追ってないから、引数(n)ついて、きちんと理解してません。
っていうのが正直な所です。
ちょっと気合を入れて動きを追ってみましょう。
7行目の if ( !s || !*s ) return n;
!s は s==0と同じ意味、sは(char *)だから sのアドレスが0だった場合(実際には、後述する「r,h,f,m,y以外」の文字だった場合)
!*s は *s == 0と同じ意味、 sのアドレスが指しているcharの値0の場合だから、null終端だった場合
どちらかの場合、引数(n)をそのまま返す。
11-27行目のswitch文
switch文の引数は*sだからアドレスsの指しているcharの値を指している。
case 'y'からcase 'r'まで、break;がないから、該当した文字列以下の文は(break;まで)すべて実行され、switch文を終える。
よって、yだったら14,16,18,20行目が実行されるので m==4となる。
同様に fだったら、18,20行目が実行されるので m==2となる。
r,h,f,m,y以外だったらdefaultまで行き m== -1となる。
0115109
2012/07/23(月) 09:41:38.7629-30行目は
まず m が 0以下という事は前のswitch文で「r,h,f,m,y以外」と言う事
その場合、30行目が実行される。
その時 引数(0,-1)でquin2decで再帰呼び出しされ、その戻り値が returnされているので、自分の戻り値となる。
で、再帰呼び出しされたquin2decでは7行目に引っかかるから、無条件に -1が帰ってくる。
(ということは 30行目は return -1;と記述しても問題ないような気がする。)
31行目は引数(s + 1, 5 * n + m)でquin2decで再帰呼び出しされ、その戻り値が returnされているので、自分の戻り値となる。
s + 1 は、sの次のアドレス(隣の文字のアドレス)にして quin2decに渡している。 注:再帰呼び出しされたquin2decの引数(s)が、自分の引数(s)の次のアドレスとなっている。
5 * n + m は 受け取った引数を5倍しているから、繰り上げ処理をして mを足している。
ふんふん、なるほど。それを繰り替えして、最後の桁まで行ったら、その戻り値が、呼び出し元に上がってくる訳か。
つまり、quin2decは引数(s)上から一文字ずつ処理して、引数(n)は、そのけた時点での十進数の値ということですね。
で、それを最終桁まで繰り返している。
自分だけが納得しているような気がする・・・。
0116109
2012/07/23(月) 09:46:03.32あ、0未満だね。
0117107
2012/07/23(月) 10:28:54.36じっくり読んでquin2decが受ける引数について理解できました!
それだけでなく、あやふやで理解したつもりになっていたところも
説明を読んでいるうちに大分しっかりと理解できました。
せっかくの機会なので34-42行目のところも教えていただけないでしょうか?
理解した「つもり」だらけだったので、ここも見当違いな考えになっていそうです。
何だか結局全部丸投げみたいになってしまい申し訳ないのですが、よろしくお願いします
0118デフォルトの名無しさん
2012/07/23(月) 11:09:06.06途中見てないが、chop()についてだけ。
目的: 引き数で渡されナル終端文字列の後方にある改行文字をchopする。
詳細:
・ナル終端文字を見つける。
・一つ遡る。
・その場所の文字が改行文字(或いは復帰文字)であればナル終端を書き込み、一つ遡る。
以上。
0119デフォルトの名無しさん
2012/07/23(月) 11:18:50.03{
char * p = strchr(s, '\0');
for (--p, p >= s && (* p == '\n' || * p == '\r'); --p)
* p = '\0';
}
0120デフォルトの名無しさん
2012/07/23(月) 11:22:00.320121デフォルトの名無しさん
2012/07/23(月) 11:55:59.51ありがとうございます。
頑張ってみます
0122デフォルトの名無しさん
2012/07/23(月) 11:59:49.680123デフォルトの名無しさん
2012/07/23(月) 12:17:34.50俺のコードをよくもマニアックといったな。慰謝料にモリタポ払え
ご指摘感謝。
何も入力しないといっても、エンターキーのみの入力という意味なら、\r, \n がバッファに載るのでほとんど問題ないでしょうが、
しかしバッファの直前がたまたま \n, \r だったりすると、確かにバグりますね。
以下に修正しておきます。
http://codepad.org/k8fng7Hh
0126デフォルトの名無しさん
2012/07/23(月) 12:47:06.48的はずれにもほどがある
0127109
2012/07/23(月) 13:28:09.19あ、本人?
勝手にコード解説しちゃって、ごめんね。
行間まで、思い込みで解説しちゃったから、
解釈の間違いあったら、正しといてください。
きっと、間違っているから。
0128デフォルトの名無しさん
2012/07/23(月) 13:34:07.130129デフォルトの名無しさん
2012/07/23(月) 14:31:44.810130デフォルトの名無しさん
2012/07/23(月) 15:53:44.740131デフォルトの名無しさん
2012/07/23(月) 17:36:21.47あるポインタをNULLで初期化すると、そのポインタはメモリ上の絶対アドレスである0番地を指すということなのでしょうか
0132デフォルトの名無しさん
2012/07/23(月) 17:42:33.910番地はワイルドカード。
0133デフォルトの名無しさん
2012/07/23(月) 17:46:25.380134デフォルトの名無しさん
2012/07/23(月) 17:49:08.120135デフォルトの名無しさん
2012/07/23(月) 18:00:30.39意味不明な日本語だけどMS-Cではプログラム終了時にNULLセグメントを調べて
そこのデータが書き換えられていればエラーとした
0136デフォルトの名無しさん
2012/07/23(月) 18:05:41.86丁寧に解説いただき恐縮です。
> 30行目は return -1;と記述しても問題ないような気がする。
これは確かに。return 文を一箇所にしたいという意思だが、そのために if (!s || !*s) と複雑になってしまったので、どっちでかいても一長一短。んー。
>>128
んー、なにを納得したのかおしえてください。匂いますか、いや臭いますか?
0138デフォルトの名無しさん
2012/07/23(月) 18:35:30.76とシンプルに書けばいいのに再帰使ってソースを読みにくくしてるところ
0140デフォルトの名無しさん
2012/07/23(月) 19:26:00.65他にもCゲンガー、フォートランナー、コボラーなど
0141デフォルトの名無しさん
2012/07/23(月) 19:27:49.63そのうちの再帰使ってるのが「わからん」ちゅーなら
初心者やらにはワカランのだろ
強力だけれども面倒くさい、
とくにその手の初心者には
誰かにとっては読みやすくても、
ここら辺りで宿題出したり聞いたりする人物のレヴェルも考える
普通なら ね
0142デフォルトの名無しさん
2012/07/23(月) 22:52:42.03問.関数、void addlist(LIST *head,LIST *addata)を完成させろ
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct name_list{
struct name_list *next;
char *name;
}LIST;
void addlist(LIST *head, LIST *addata);
int main(void){
LIST name0= {NULL, NULL};
LIST name1= {NULL, "B"};
LIST name2={NULL, "C"};
LIST name3={NULL, "D"};
LIST name4={NULL, "E"};
LIST addata = {NULL, "A"};
LIST *p;
LIST *head;
head=&name0; name0.next=&name1; name1.next=&name2; name2.next=&name3; name3.next=&name4;
addlist(head, &addata);
for(p = head->next; p != NULL;p=p->next)printf("%s\n,p->name");
どなたかお願い致します....(ノД`)
0143デフォルトの名無しさん
2012/07/23(月) 22:53:49.68return 0;
}
を忘れてました...
0144デフォルトの名無しさん
2012/07/23(月) 22:57:15.170146デフォルトの名無しさん
2012/07/23(月) 23:00:32.52void addlist(LIST *head,LIST *addata)
{
LIST *p = head;
while (p->next) p = p->next;
p->next = addata;
}
0147デフォルトの名無しさん
2012/07/23(月) 23:04:27.30PICマイコンを使用するためにC言語を勉強中です。
どうしてもプログラム中に、EEPROMへの読み書きを多用するので
int型とlong型用の2つの値をEEPROMから読み込み、int型long型のそれぞれの変数へ代入する関数を作ったのですが、ポインタの使い方がよくわかりません
hiとかloというのは2バイト以上の変数を1バイト単位に分割するために使用する”built_in.h”というヘッダファイル用の語句です
このコードの何がダメなのかも分らないのでご教授ください
よろしくお願いします
void main()
{
int x;
long y;
read2byte(100,&x);
read4byte(200,&y);
}
void read2byte(int a,int *b)
{
hi(*b) = EEPROM_Read(a);
lo(*b) = EEPROM_Read(a+1);
}
void read4byte(int a,long *b)
{
highest(*b) = EEPROM_Read(a);
higher(*b) = EEPROM_Read(a+1);
hi(*b) = EEPROM_Read(a+2);
lo(*b) = EEPROM_Read(a+3);
}
0148デフォルトの名無しさん
2012/07/23(月) 23:10:09.88バイトオーダーが違うかもしれない
くらいしか分からん
0149147
2012/07/23(月) 23:11:54.31EEPROM_Read(a); というのはコンパイラ付属の関数で、aがEEPROMのメモリアドレスです
0150>>142
2012/07/23(月) 23:14:59.54そもそもこのプログラムって何をしているものなのでしょうか....?
ソート?
あと、for文の上の
addlist(head, &addate)というのは何なのですか?
0151片山博文MZボット ◆0lBZNi.Q7evd
2012/07/23(月) 23:18:05.21hi(*b)は左辺値ではないから代入できないと思われ
0152147
2012/07/23(月) 23:23:18.802バイト以上の値、例えばlong型(4バイト)を低いビットからlo,hi,higher,highestとバイト単位に分割するものです
0153デフォルトの名無しさん
2012/07/23(月) 23:26:02.62うんにゃ
わたされた head から末尾を探し出して、その末端にさらに 渡された adddata を繋げてる
name0〜name4 までのリストを手で構築後
adddata 関数を呼び出してる
意図として name0〜name4 の後ろに adddata を連結しようとしてる と俺は解釈した
0154デフォルトの名無しさん
2012/07/23(月) 23:29:09.93○ addlist 関数を呼び出してる
0155>>142
2012/07/23(月) 23:30:02.40このプログラムはAがname0に入るわけでは無いんですか??
addataがname4の後に連結した時、whileが初めて回りだしてAが先頭に来るって事ですか?
やばい日本語おかしくてスミマセン
0156デフォルトの名無しさん
2012/07/23(月) 23:36:07.74ABCDE にしたいのなら
void addlist(LIST *head,LIST *addata)
{
LIST *p = head->next;
head->next = addata->next;
addata->next = p;
}
0157デフォルトの名無しさん
2012/07/23(月) 23:36:41.10厳しいようだけど、
明日試験で、過去問で解答が分からない。ってのは
解答を教えても、明日の試験では違う問題がでるから意味が無いのでは?
解き方が分かっていないんだから。
このプログラムは、addlistが不明なのだが、明示されてるのだから、
そこを理解する所から、入るべき。
(まさしく >>150 の疑問を理解できる様になる事が大事)
それから、足りない部分(addlistの中身)を考える。
0158デフォルトの名無しさん
2012/07/23(月) 23:37:14.59○ head->next = addata;
なんかヒデェな… もう寝る
0159157
2012/07/23(月) 23:39:14.48まつがい。
このプログラムは、addlistが不明なのだが、明示されている所を理解する所から入るべき
0160>>142
2012/07/23(月) 23:40:52.16そもそも一晩(ではないんですけども)でやろうとした自分が悪いですね...
少し前の方から再度勉強しなおしてきます...
ありがとうございました!
0161片山博文MZボット ◆0lBZNi.Q7evd
2012/07/23(月) 23:41:19.46や
*b = ((long)EEPROM_Read(a) << 24) | ((long)EEPROM_Read(a+1) << 16) | ((long)EEPROM_Read(a+2) << 8) | (long)EEPROM_Read(a+3);
みたいに書かないといけない。
0162デフォルトの名無しさん
2012/07/23(月) 23:47:27.06君はまだEEPROMを使うべきではない(きり)
0163片山博文MZボット ◆0lBZNi.Q7evd
2012/07/23(月) 23:58:54.84union I16{int i;
struct {unsigned char LO,HI;}};
union I32{long l;struct {I16 LO,HI;}
};
0164片山博文MZボット ◆0lBZNi.Q7evd
2012/07/24(火) 00:14:51.030165147
2012/07/24(火) 00:26:01.62レスありがとうございます。
その式と、下記の式だと自分には同じ動作だと思ってしまうのですが
何がどう違うのでしょうか?本当にわからないです><
void read4byte(int a,long *b)
{
highest(*b) = EEPROM_Read(a);
higher(*b) = EEPROM_Read(a+1);
hi(*b) = EEPROM_Read(a+2);
lo(*b) = EEPROM_Read(a+3);
}
0166デフォルトの名無しさん
2012/07/24(火) 00:29:04.57hi とか lo がどんなものか分からないからこうしようぜ
void read4byte(int a, long *b)
{
unsigned char *p;
p=(unsigned char*)b;
*(p+0)=EEPROM_Read(a+0);
*(p+1)=EEPROM_Read(a+1);
*(p+2)=EEPROM_Read(a+2);
*(p+3)=EEPROM_Read(a+3);
}
0167片山博文MZボット ◆0lBZNi.Q7evd
2012/07/24(火) 00:33:47.87恐らくhiマクロなどは内部でシフト演算を使っているので
hi(*b)などは参照がなくなって左辺値になれないから代入対象になれない。ただそれだけ。
0168147
2012/07/24(火) 00:39:29.70レスありがとうございます。
実は、>>165で書いた式と、>>161さんの書いた式で問題なく読み込みができたのですが、
PICマイコンのスレで同じような質問をしたところ、ポインタの使い方?がおかしいと指摘されて
ここで質問させて頂きました。
一番気になるのはポインタの使い方の間違いと間違っているために起こり得る問題です。
long型(適当な値 99,999とか2,222,222)を一旦、EEPROMに書き込み、上記の式で読み込ませたところ
正常に読み込まれているので何が何だかさっぱりわかりません~~;
0169147
2012/07/24(火) 00:44:24.25レスありがとうございます。
実は、>>168で書いたよう、に教えて下さった式も自分で書いた式も問題なく読み込みできています。
本当に何がダメなのか、本当はダメではないのか分らず、困りましたorz
0170片山博文MZボット ◆0lBZNi.Q7evd
2012/07/24(火) 01:00:20.84そこにhi,loの定義があると思われます。
それらをさらして下さい。
0171147
2012/07/24(火) 01:04:28.32>>170
了解しました。下に晒します。
話変わりますが、例のコードはポインタの使い方って間違っていますかね?
そこが気になります。
#define Lo(param) ((char *)¶m)[0]
#define Hi(param) ((char *)¶m)[1]
#define Higher(param) ((char *)¶m)[2]
#define Highest(param) ((char *)¶m)[3]
#define lo(param) ((char *)¶m)[0]
#define hi(param) ((char *)¶m)[1]
#define higher(param) ((char *)¶m)[2]
#define highest(param) ((char *)¶m)[3]
0172147
2012/07/24(火) 01:06:18.61#define Lo(param) ((char *)& param)[0]
#define Hi(param) ((char *)& param)[1]
#define Higher(param) ((char *)& param)[2]
#define Highest(param) ((char *)& param)[3]
#define lo(param) ((char *)& param)[0]
#define hi(param) ((char *)& param)[1]
#define higher(param) ((char *)& param)[2]
#define highest(param) ((char *)& param)[3]
0173デフォルトの名無しさん
2012/07/24(火) 01:06:47.16>>147 のままで合ってるよ
0174片山博文MZボット ◆0lBZNi.Q7evd
2012/07/24(火) 01:08:49.01シフト演算じゃなくて&とキャストを使ってた
0175デフォルトの名無しさん
2012/07/24(火) 01:10:37.95> PICマイコンのスレで同じような質問をしたところ、ポインタの使い方?がおかしいと指摘されて
その指摘は hi, lo を関数だと勘違いしての指摘かもしれんね
0176147
2012/07/24(火) 01:11:22.58マジですか?
PICもC言語も始めて数か月程度しか経っておらず、ポインタを覚えるためにも初めて使ってみたのですが
PICマイコンスレで指摘され、どうしても自信がありません><
0177147
2012/07/24(火) 01:14:57.23レスありがとうございます!
キャストとかの語句はまったくわかりませんでしたのでもっと勉強しないとダメですね
どうもありがとうございました!
0178デフォルトの名無しさん
2012/07/24(火) 07:52:56.120179デフォルトの名無しさん
2012/07/24(火) 11:01:09.22ポインタtoポインタで教えるのは教員の好みによるものなのかい?
0180デフォルトの名無しさん
2012/07/24(火) 11:06:40.17え?使わない?
二重ポインタを使わないとなると、コピーコピーコピー、とルートまで延々コピーする格好の悪いことになるのだが?
0182デフォルトの名無しさん
2012/07/24(火) 12:31:00.60それが正解だよ
コピーコストが嫌ならリストオブジェクト全体の参照を取ればいい
ノードの参照は共有しないのが常識
0183デフォルトの名無しさん
2012/07/24(火) 12:46:33.760184デフォルトの名無しさん
2012/07/24(火) 13:12:59.51ふつー二重ポインタ使うでしょ
0185デフォルトの名無しさん
2012/07/24(火) 13:29:10.43それかポインタ配列か
話は変わるけどこういうのはcがfree()されるとaもbもダングリングポインタになってしまうけど
検出されないのな
当たり前か
後からaやbを使いまわす可能性があるし
int main(void)
{
int *a, *b, *c;
c = (int *)malloc(sizeof(int));
if (c == NULL)
exit(1);
*c = 123;
a = b = c;
printf("%d %d %d\n", *a, *b, *c);
free(c);
return 0;
}
0186デフォルトの名無しさん
2012/07/24(火) 13:29:14.80アホすぐる。
0187デフォルトの名無しさん
2012/07/24(火) 13:30:18.83お前はまったく理解していない。
0188デフォルトの名無しさん
2012/07/24(火) 14:51:53.24この空欄Bに入る単語を答えよという問題があるんですが キャスト演算子(float)を セミコロン直前におくような
表現が思い当たりません。(問題文全体はもっと長いです。)どのような表現が入りうるのでしょうか?
0189デフォルトの名無しさん
2012/07/24(火) 14:54:21.100190デフォルトの名無しさん
2012/07/24(火) 15:06:43.27printf(" %-12g",f); の意味も教えていただけないでしょうか?
問題が紙なので %ー12じゃなくくて %ーL2 かもしれませんが
0191デフォルトの名無しさん
2012/07/24(火) 15:09:38.05C に「検出」などというお子様仕様は皆無。
0193デフォルトの名無しさん
2012/07/24(火) 18:47:15.430194デフォルトの名無しさん
2012/07/24(火) 18:52:58.260195デフォルトの名無しさん
2012/07/24(火) 18:55:30.070196デフォルトの名無しさん
2012/07/24(火) 20:16:30.670197デフォルトの名無しさん
2012/07/24(火) 20:17:28.880198デフォルトの名無しさん
2012/07/24(火) 20:18:43.630199デフォルトの名無しさん
2012/07/24(火) 20:24:23.89無職のオッサンに上から目線で言われたくないなあ
0200デフォルトの名無しさん
2012/07/24(火) 20:25:29.580201デフォルトの名無しさん
2012/07/24(火) 20:39:57.160202デフォルトの名無しさん
2012/07/24(火) 20:41:25.79よろしければもう少しお話しいただけるとありがたい。
二重ポインタあるいはポインタの参照は必要不可欠だと思うのですけれども、それで正しいということでしょうか?
それともポインタのみで正、なのでしょうか?
http://ideone.com/50Y4Z
であればそういう発言をしないことだ。
0205デフォルトの名無しさん
2012/07/24(火) 21:09:46.86ルートノードを直接的にリストとみなさずに
ルートノードを包むようなリストオブジェクトを書くんだよ
ルートのアドレスがコロコロ変わったらリストを参照してる人が大変だろう
0206デフォルトの名無しさん
2012/07/24(火) 21:09:52.12人のせいにすんな
まず働け
0207デフォルトの名無しさん
2012/07/24(火) 21:11:37.90相手にするな。
0208デフォルトの名無しさん
2012/07/24(火) 21:40:15.20RpC~オワオスB}とでるんだけど、だれか助けて(泣)
0209デフォルトの名無しさん
2012/07/24(火) 21:56:37.780210デフォルトの名無しさん
2012/07/24(火) 22:17:32.84ソースファイルを指定してないからじゃないの?
0211デフォルトの名無しさん
2012/07/24(火) 22:20:02.05なんて打ったかくらい全部描けよアホ
0212デフォルトの名無しさん
2012/07/24(火) 22:24:49.58C++で書くんならmallocじゃなくてnew使おうよ・・・
必死で書いたのが伝わってきてキモス
0213デフォルトの名無しさん
2012/07/24(火) 22:25:22.19たしかにそれには同意します。
特にクラスに仕立てるときに、ルートを含むクラスとノードのクラスを一つにまとめようと苦心した記憶がありますが、
結局のところ、ルート(ファーストノードをさすポインタ)は、ノードクラスとは別にしたほうがいいと考えるようになりました。
http://codepad.org/jUqoMRPp
(結城さんのJavaデザパタ本はadapterパターンを試行したものです。リストではなく二分木ではありますが、Node クラスはほとんど構造体扱いで Node クラスのメンバ関数は軒並みstaticの有様です。)
ただしここで話題となっている、いや話題としたいのは、「リストや二分木を扱うときに、二重ポインタを使わずに書く、というのはあまり考えられないのでは?」という素朴な疑問です。
単にCで参照を使いたいという願望だけでざっと書き下ろしてみたのですが、あー、ぶれてますねえ、なんで cstdio を使わずに iostream にしちゃったんだろう?
0216デフォルトの名無しさん
2012/07/24(火) 22:37:28.680217デフォルトの名無しさん
2012/07/24(火) 22:41:16.290218デフォルトの名無しさん
2012/07/24(火) 22:41:17.060219デフォルトの名無しさん
2012/07/24(火) 22:45:05.48二重ポインタを使う必要がない(実際、簡単に書ける)
だからわざわざ間違いが起こりやすい二重ポインタを使うのは避けるべき
ではなくて、ポインタ変数のリファレンス。
昔いろいろやってみたことがありました。http://toro.2ch.net/test/read.cgi/tech/1277860967/504
うん、それが理解できないでいるのです。
リストは >>184 ににた形で(二重ポインタ抜きで)書けそうですが、二分木やAVL木では、二重ポインタなしではほとんど不可能では、と考えるのです。
0222デフォルトの名無しさん
2012/07/25(水) 05:11:34.410223デフォルトの名無しさん
2012/07/25(水) 05:34:23.01自己愛性パーソナリティ障害が何を言うかw
0224はちみつ餃子 ◆8X2XSCHEME
2012/07/25(水) 07:36:23.360225デフォルトの名無しさん
2012/07/25(水) 07:52:53.60コテやめた方がいんでね?
0226デフォルトの名無しさん
2012/07/25(水) 07:53:54.440227デフォルトの名無しさん
2012/07/25(水) 08:10:24.87自己紹介乙。
今時Cなんて書かないけど、リストなんてのも書かないけど、
書くとしたらこんなもんだろ。
http://ideone.com/3miZh
0228デフォルトの名無しさん
2012/07/25(水) 08:40:42.420229デフォルトの名無しさん
2012/07/25(水) 08:51:22.93二重ポインタくらいで音を上げるど素人が「べき」なんて言うな、おこがましい
0230デフォルトの名無しさん
2012/07/25(水) 09:00:02.350231デフォルトの名無しさん
2012/07/25(水) 09:31:33.84本物の低脳を久々に見た
229はガチでヤバイ
0232デフォルトの名無しさん
2012/07/25(水) 09:31:51.970233デフォルトの名無しさん
2012/07/25(水) 10:28:33.93http://cslibrary.stanford.edu/105/LinkedListProblems.pdf
0234デフォルトの名無しさん
2012/07/25(水) 11:26:23.770235デフォルトの名無しさん
2012/07/25(水) 11:32:07.99先頭ノードを指すポインタの値がコロコロ変わるために、二重ポインタを使って
先頭ノードを指すポインタの値を書き換えてるんだよね
リストの最後尾にノードを付加するようにすれば二重ポインタは不要
0236デフォルトの名無しさん
2012/07/25(水) 11:38:54.610237はちみつ餃子 ◆8X2XSCHEME
2012/07/25(水) 12:21:56.77書けないということは事実上証明不能 (いわゆる悪魔の証明) なので、
この場合の証明責任は書けるという側にあるということを述べただけで俺は
内容についてどちらとも思ってないというか全く考察してない。
0238デフォルトの名無しさん
2012/07/25(水) 12:24:56.260239デフォルトの名無しさん
2012/07/25(水) 13:10:58.12だよな
だから先頭にノードを付け加えるのは特殊なケースを除けば百害あって一利なしのような気がする
0240デフォルトの名無しさん
2012/07/25(水) 13:19:05.19先頭追加なら早くて、追加のメモリも要らないが、参照がコロコロ変化するのが面倒なのでリストをラップするオブジェクトが必要になり結局メモリ効率も前者と同じになる
0241デフォルトの名無しさん
2012/07/25(水) 13:50:20.40メモリはたくさん食うけど先頭ノードからすぐに末尾ノードへのポインタを得る事が出来る
だいたいリストをソートする時には単方向リストだと大変だぞ
>>184, >>203 より機能を削ってますね。リストの頭にしかノードを追加できない。
>>184, >>203 と同じようにリストの途中に挿入する形で、かつ二重ポインタを使用しない、というのは可能なんでしょうか。
双方向ならできるかな?
0243デフォルトの名無しさん
2012/07/25(水) 19:46:08.51以上
0244デフォルトの名無しさん
2012/07/25(水) 19:53:54.30↑
詳細を議論できなくて逃げたいゴミがよく使う言葉
0245デフォルトの名無しさん
2012/07/25(水) 19:59:51.560246デフォルトの名無しさん
2012/07/25(水) 20:08:27.46横からだが、それは、さすがに
悪魔の証明を求めていると思う。
0247デフォルトの名無しさん
2012/07/25(水) 20:09:02.25双方向でリング状?
先頭->prev = 末尾
末尾->next = 先頭
0248デフォルトの名無しさん
2012/07/25(水) 20:10:43.910249デフォルトの名無しさん
2012/07/25(水) 20:15:15.390250デフォルトの名無しさん
2012/07/25(水) 20:16:43.45悪魔の証明って言いたいだけだろ
普通にできるものを出来ないといいはるからなんでだよってなるのは当然
馬鹿な子供が掛け算が出来ないからってそれが計算不能なわけではないだろ
勉強してなんとかやろうとしてないだけだよ
0251デフォルトの名無しさん
2012/07/25(水) 20:22:39.120252デフォルトの名無しさん
2012/07/25(水) 20:35:35.90うん。言いたかっただけw
ただ、これは考え方の違いだからいいんだけど、
バカだと思った子に、「お前はバカだ」と言っても何も始まらないと思う。
その場合「君はこういう理由でバカだよ」と説明してあげた方がいいと思ってる。
0253デフォルトの名無しさん
2012/07/25(水) 20:38:54.11散々書いてあるでしょ
0254デフォルトの名無しさん
2012/07/25(水) 20:42:00.05バカには何を言っても無駄。このスレ見てればわかるだろ。
http://ideone.com/rEld8
0255デフォルトの名無しさん
2012/07/25(水) 21:15:44.00双方向リストにするならリングリストにしないと意味が半分失われるよ
最初に作成したノードを指すポインタを保持しておく
そしてもし最初に作成したノードを削除した場合、一つ前(つまり最後尾)か
一つ後ろを指すように書き換える
0256デフォルトの名無しさん
2012/07/25(水) 21:23:24.18http://www.ysr.net.it-chiba.ac.jp/data/list/node5.html
こんな感じか
そしてノードを削除していって一つもノードがなくなったらノードを指すポインタを
NULLにするなどしておく
別に無理にリングリストにする必要もないけどしておくといろいろと便利
んー、各ノードを走査するときに、同時に前回の対象ノード=今回の親ノードを記憶しておくんですね。なるほど。
でも、これってリストだからできるやりかたで、二分木のときにはやる気はおきないなあ。
ああ、二分木を非再帰に構成する――上からノードをパチンコ玉よろしく落としていって、はまるところにはまる、っていうやりかたはありそうですね。
二重ポインタに固執していたんですが、いろいろあるんですね。ありがとうございました。
0258デフォルトの名無しさん
2012/07/25(水) 22:10:28.89>>184と同じだろ。
0259デフォルトの名無しさん
2012/07/25(水) 22:13:15.370260デフォルトの名無しさん
2012/07/25(水) 22:14:20.410261259
2012/07/25(水) 22:22:51.53残念ながら違います。。
運営さんにIPきいてみたら?
0262デフォルトの名無しさん
2012/07/25(水) 22:32:25.62一生な。
え?
>>184 は二重ポインタ pp をつかってループ変数を一つにおさえていますけれども、>>254 は挿入地点 p とその親 pPrev の両方をおさえてるでしょ。
p の親がない場合は pPrev = 0 にして、そのときの処理は場合わけにしたりとか。
なんだか二重ポインタ抜きだといろいろ面倒だなあ。 たぶんやらない、やりたくない。
>>259
できるだけいろいろみるようにしてますが、やっぱりそういうものでしょうね。堅いといわれてもしかたがない。
0264デフォルトの名無しさん
2012/07/25(水) 22:34:17.70アホはアホでひとくくり
0265デフォルトの名無しさん
2012/07/25(水) 23:04:59.72普通とか普通じゃないと、他人に理解されようがされまいが
そんの事はかは関係ない。動いたもん勝ち。
ただし、これを仕事する場合は、大抵チームで作って幾ものだから
当然、担当が変わることもある。
その場合、他の人が読めない様なコードはくずだし、
そんなコードを書く奴もポンコツ扱いされる。
0266デフォルトの名無しさん
2012/07/25(水) 23:13:06.82どうせコピペ検知システムでバレるのにモリタポなんか取ってひでえ
癖があるからすぐに分かってしまう
0267デフォルトの名無しさん
2012/07/25(水) 23:18:40.01本気で好きなんだな
きもちわるい
0268デフォルトの名無しさん
2012/07/25(水) 23:23:04.160269デフォルトの名無しさん
2012/07/25(水) 23:36:48.68なにそれ
ちょっと説明してもらえるかな?
0270デフォルトの名無しさん
2012/07/25(水) 23:38:41.24よみがな。
0271デフォルトの名無しさん
2012/07/25(水) 23:44:18.19大学の講師なめすぎ
0273デフォルトの名無しさん
2012/07/26(木) 00:04:29.560274デフォルトの名無しさん
2012/07/26(木) 00:19:16.050275デフォルトの名無しさん
2012/07/26(木) 01:30:53.63俺んとことか金持ちじゃなかったからパソコンすらなかったし
0276デフォルトの名無しさん
2012/07/26(木) 01:39:57.940277デフォルトの名無しさん
2012/07/26(木) 01:45:03.17金持ちは医者とかだろ
世の中に何人プログラマーがいると思ってるんだ
今は開発環境がタダで手に入るけど
昔はアセンブラ買う金がなかったから
ノートにアセンブリ言語でコーディングして
CPUの命令セット見て手でコンパイルして
マシン語モニタで16進数で打ち込んだりしてたぞ
ドラクエの中村光一さんなんかも新聞配達でパソコン買ってたぞ
バイトすればパソコンくらい買えるだろ。てかなにで書き込んでるんだ
ちなみに秋元康さんは高校生のときに親の年収超えちゃって
親父が寂しそうな顔したとか
0278デフォルトの名無しさん
2012/07/26(木) 01:49:52.56どうせ俺はプログラマーにはなれないんだよ。
どうしたらいい?
本気で就職困ってる。
大学院は行かない(1浪2留)情報学科
で就職ある?
アトピー持ちだよ。
就活が怖い。
0279デフォルトの名無しさん
2012/07/26(木) 01:51:35.76プログラマーなんてどうせ高専か大学ストレートで出た20前半の奴
がなるんだろ?おまけに実家は金持ちで小4くらいからWindowsいじ
ってたような。
俺は何もかも恵まれていない。
助言をくれ。
0280デフォルトの名無しさん
2012/07/26(木) 01:51:53.390281デフォルトの名無しさん
2012/07/26(木) 01:56:03.730282デフォルトの名無しさん
2012/07/26(木) 01:58:05.80それってさ単に有能なだけだろ..........
0283デフォルトの名無しさん
2012/07/26(木) 02:00:50.990284デフォルトの名無しさん
2012/07/26(木) 02:03:29.53もし彼が無職ならプログラマがいかに敷居の高い職業なのかわかるでしょ。
0285デフォルトの名無しさん
2012/07/26(木) 02:04:51.400286デフォルトの名無しさん
2012/07/26(木) 02:07:41.40このスレ来てるんならCは分かるんだろ?
Cが分かってれば3日もあればObjective-Cは使えるようになる
IT土方なら中卒だっていたぞ
某官公庁の経理システムのリーダーとか
この人なんか内定貰ってから勉強してるんだぞ
http://itpro.nikkeibp.co.jp/article/Interview/20090902/336374/
0287デフォルトの名無しさん
2012/07/26(木) 02:20:28.12>Cが分かってれば3日もあればObjective-Cは使えるようになる
本当ですか?にわかには信じがたい。
今 Java やってますけれども、いろんなJava知識を一からやっているわけで、なかなかものになりません。
きょうはここでひっかかりました。http://toro.2ch.net/test/read.cgi/tech/1340976913/595
0289デフォルトの名無しさん
2012/07/26(木) 02:54:24.410290デフォルトの名無しさん
2012/07/26(木) 02:59:18.70double精度でやるのは、公式知ってればすぐにできるけど、
出来合いのクラス使わずに多倍長計算やるとまあまあ手応えあって面白いよ
0291デフォルトの名無しさん
2012/07/26(木) 03:02:05.490292デフォルトの名無しさん
2012/07/26(木) 03:04:34.51Fラン卒だった
0293デフォルトの名無しさん
2012/07/26(木) 03:07:15.26それレスみた?とりあえず英語読めないときついぞ
Java分かってればなお速いぞ
>>289
「C 円周率」でびんぐれ
「マチンの公式 C」でもいいぞ
0294デフォルトの名無しさん
2012/07/26(木) 03:28:00.90中年ジジイは既に脳が硬化してるから無理だよ
うん。自分で extends Applet の外にクラス作っておいだしたはいいものの、そのクラスをも extends Applet にしないといけなかったんですね。
まだぴんとこないのですけれども。
0296デフォルトの名無しさん
2012/07/26(木) 03:44:02.16それがしたかったのなら正しいけど多分違うだろ
そうですか?extends ではうまくいってます。
this を cast してもだめだったし、いまいち c++ と違うような気がするなあ。
0298デフォルトの名無しさん
2012/07/26(木) 03:57:47.08アプレットビュアーまでOKです。んーんー。
0300デフォルトの名無しさん
2012/07/26(木) 04:06:59.62はインナークラスを外に出したって言ってるけど中にもまだ残ってるし
残ってるほうのForDimChangeで動いてるだけじゃないのかね
それとも他にも変更したのかね
0301デフォルトの名無しさん
2012/07/26(木) 04:08:23.61続きはあっちで
0302デフォルトの名無しさん
2012/07/26(木) 06:34:41.31こんな事で躓いてるようじゃC++もできんだろ
0303デフォルトの名無しさん
2012/07/26(木) 06:48:31.62http://ideone.com/U9EzS
そう思うのは勝手ですが、かくいうあなたもいずれ硬化脳中年になるのです。
0305デフォルトの名無しさん
2012/07/26(木) 08:13:35.280306デフォルトの名無しさん
2012/07/26(木) 08:33:03.98おすすめのコンパイラ教えてくれ。あと学ぶためのサイトまた書籍とかも。
0307デフォルトの名無しさん
2012/07/26(木) 08:37:33.320308デフォルトの名無しさん
2012/07/26(木) 08:41:55.680309デフォルトの名無しさん
2012/07/26(木) 09:10:25.49knoppixをDLして、CD-Rに焼いて、なおかつUSBにもisoを入れろ
ソイツの文字コードはUTFだから気をつけろ
0310デフォルトの名無しさん
2012/07/26(木) 09:13:00.95http://www.nicovideo.jp/watch/sm18435339
日韓国交断絶デモの公式サイト
http://haigai.exblog.jp/m2012-06-01/
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_12523823.jpg
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_1264643.jpg
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_12172135.jpg
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_12174390.jpg
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_12191232.jpg
http://pds.exblog.jp/pds/1/201206/25/41/d0178541_12251748.jpg
http://www.youtube.com/watch?v=2oqZGmeEzWg&feature=player_detailpage#t=2545s
0311デフォルトの名無しさん
2012/07/26(木) 10:43:52.43その議論は無意味ですよ
「今ここ」の話をしているのですから
0312デフォルトの名無しさん
2012/07/26(木) 13:02:39.83初心者なら codepad.org でいいよ
VCとか自分のPCにはインストールしたくないよね
0313デフォルトの名無しさん
2012/07/26(木) 16:08:00.61codepad...わかった
0314デフォルトの名無しさん
2012/07/26(木) 16:12:47.020315デフォルトの名無しさん
2012/07/26(木) 16:21:01.760316デフォルトの名無しさん
2012/07/26(木) 16:50:35.82だれか助けてください
#include<stdio.h>
main()
{
int i, sum;
「わからない箇所」;
for(i=1; i<= 99;「わからない箇所」){
「わからない箇所」;
}
printf("sum = %d\n", sum);
}
大学の課題で必要なんですが、すいませんどなたか助けてください…。
0317デフォルトの名無しさん
2012/07/26(木) 16:52:49.98i+=2
sum+=i
0318デフォルトの名無しさん
2012/07/26(木) 16:59:54.01i += 100
sum += 0
0319デフォルトの名無しさん
2012/07/26(木) 17:04:39.45非常に厚かましいのですが、この場合だとどうすれば良いのでしょうか
キーボードから3桁の整数を入力したとき、それぞれの桁の和を求めるプログラムを作りなさい
たとえば234と入力されたとき2+3+4を求める
#include
main()
{
int a, q, sum;
printf("3桁の整数を入力してください\n");
scanf("%d",&a);
q=「わからない箇所」;//100の位を求める
sum = q;
a =「わからない箇所」;//元の数aから100の位を除く数をあらためてaとする
q =「わからない箇所」;//10の位を求める
sum = sum + q;
a = 「わからない箇所」;//10の位を除く
sum = sum +「わからない箇所」;
printf("和=%d\n",sum);
0320デフォルトの名無しさん
2012/07/26(木) 17:07:55.74a/100
a-q
a/10
a-q
a
0321デフォルトの名無しさん
2012/07/26(木) 17:17:13.72すいません、最後です。できればお願いしますorz
年利率がr%の銀行にa円預金したとき、それがb円になるのに何年かかるかを求めるプログラムを作りなさい
#include <stdio.h>
main()
{
double r, a, b;
int year = 0;
printf("r,a,bを,この順番で,入力してください\n");
scanf("%lf %lf %lf", &r, &a, &b);
while(「わからない箇所…たぶんmoneyだと思うのですが…){
year++;
a「わからない箇所」;
}printf("year=%d\n",year);
}
0322デフォルトの名無しさん
2012/07/26(木) 17:22:28.32*=1*r/100
0323デフォルトの名無しさん
2012/07/26(木) 17:35:59.32C言語の課題です。
「自分のフルネームをアルファベット小文字で入力し、そのアスキーコードを、10進数で求めて平均、分散、標準偏差を表示」
を表すソースを教えてください。
0324デフォルトの名無しさん
2012/07/26(木) 17:38:25.180325デフォルトの名無しさん
2012/07/26(木) 17:38:36.89C/C++の宿題片付けます 159代目
http://toro.2ch.net/test/read.cgi/tech/1342966104/
0326デフォルトの名無しさん
2012/07/26(木) 17:40:48.600327デフォルトの名無しさん
2012/07/26(木) 18:01:50.56日本で人が育たないんだなあ
0328デフォルトの名無しさん
2012/07/26(木) 18:35:29.13ある程度問題解決
0329デフォルトの名無しさん
2012/07/26(木) 18:47:28.37遊んだりとか他のリア充活動ばかりが評価されるからなあ
そりゃ普通大学を真面目にやるのは損って思うでしょ
レポートはコピーしてその分遊んだりなんかでリア充した方が職を得やすいんじゃ誰も勉強しないよ
うちの同期のトモダチもそういうやつらはみんな大手決まってるけどコピー元のレポート書いてる俺や他の真面目くんはまだ中小にすら拒否されまくりだよ
0330デフォルトの名無しさん
2012/07/26(木) 19:16:37.480331デフォルトの名無しさん
2012/07/26(木) 19:17:32.40コードは三ヶ月で書けるようになるからな
0332デフォルトの名無しさん
2012/07/26(木) 21:01:00.930333デフォルトの名無しさん
2012/07/26(木) 21:24:50.22掲載していることである。よくあるのは、階乗の計算やフィボナッチ数列の計算だ。
再帰は強力なツールであり、それをこのような状況で使用するとはあきれてものが
言えない。仮に、私の部下が再帰を使って階乗を計算しようものなら、別のだれかを
雇うだろう。
『Code Complete第2版〈上〉』(Steve McConnell,日経BPソフトプレス,2005年,p486)
0334デフォルトの名無しさん
2012/07/26(木) 21:29:03.540335デフォルトの名無しさん
2012/07/26(木) 21:42:30.19そのイカした本にはcoooooooooooolなリカーシヴの実例が
載ってるんだろな
0336デフォルトの名無しさん
2012/07/26(木) 21:42:37.72http://engawa.2ch.net/test/read.cgi/poverty/1343183891/
韓国、日本村を造成、在日韓国人の定着支援を計画
在外僑胞の村がある慶尚南道南海郡(キョンサンナムド・ナムヘグン)に日本村と観光休養団地が新たに造成される。
韓国南海郡は24日、郡庁でこうした内容が盛り込まれた事業計画を確定し発表した。
これによると郡は460億ウォン(約31億円)を投じて日本式住宅、コミュニティセンター、小公園などを備えた住宅団地を作る。
また、日本文化体験館、日本食・宿泊体験館、日本歴史文化館も作る。
故郷を離れた後、異国の地に住む在日韓国人の故国定着のためのものだと郡は説明した。
2012/7/25
http://japanese.joins.com/article/196/156196.html?servcode=A00§code=A10
0337デフォルトの名無しさん
2012/07/26(木) 21:48:06.810338デフォルトの名無しさん
2012/07/26(木) 21:49:40.51フィボナチ数列は、再帰でもいいんじゃない?
まあビネの公式を調べて使えということかもしれないが。
0339デフォルトの名無しさん
2012/07/26(木) 22:41:32.51違う。
再帰はスタックを消費する。
フィボナッチ数列を再帰で書いたら俺でも怒るわ。
この人は、「普通にループで書けるのに無駄にスタック消費しやがって!もっと考えろ!」ということを言いたいだけ。
もっと言うと、「素晴らしいものが何にでも通用すると思うな!『銀の弾丸』は無い!都度考えろ!」ということ。
0340デフォルトの名無しさん
2012/07/26(木) 22:43:57.020341デフォルトの名無しさん
2012/07/26(木) 22:45:09.15Thasts neta, right?
0342デフォルトの名無しさん
2012/07/26(木) 22:45:41.690343デフォルトの名無しさん
2012/07/26(木) 22:46:15.79コピペ馬鹿の分際で偉そうなことを言うなって
0344デフォルトの名無しさん
2012/07/26(木) 22:49:23.78ほう、じゃあ何か偉そうなことを言ってみろ。
0345デフォルトの名無しさん
2012/07/26(木) 22:54:21.82再帰は素晴らしい機構だが、盲信すんなってことだ。
確かに順列は再帰は不要だな。普通にループすべし。
0346デフォルトの名無しさん
2012/07/26(木) 22:55:07.52「えらそうなこと」にはららないからです。
非常に済みませんが、あたなのような程度の低い低脳が滲み出た
ええらそうなことなることは、言えません。
0347デフォルトの名無しさん
2012/07/26(木) 22:55:35.280348デフォルトの名無しさん
2012/07/26(木) 22:58:58.03お疲れ様でした。田舎に帰って実家警備業にでも就いてください。
ついでに精神科にも通ってください。
0349デフォルトの名無しさん
2012/07/26(木) 23:04:17.70でも、ハノイの塔を再帰で書くのは却下w
0350デフォルトの名無しさん
2012/07/26(木) 23:05:29.200351デフォルトの名無しさん
2012/07/26(木) 23:33:50.94>>331
うわぁもうやめてくれ。
プログラマーって眼鏡かけたリア充の巣窟なんだろうな。
もう吐き気がとまらないわ。
俺は一生新聞配達か。
0352デフォルトの名無しさん
2012/07/26(木) 23:43:02.56http://d.hatena.ne.jp/yomoyomo/20090721/reunion
ループは再帰にできるけど、再帰をループで書くのは面倒なんだっけか
0353デフォルトの名無しさん
2012/07/26(木) 23:45:16.230354デフォルトの名無しさん
2012/07/27(金) 00:08:52.66例にそんなに噛み付かないでくれよ
ほら、ジャーキーやるからさ(´・ω・`)
0355デフォルトの名無しさん
2012/07/27(金) 00:12:20.79スタックを消費するのは仕方ない場合もあるが、
フィボナッチ数列で問題になるのは単純に再帰で実装すると
ループで書いた場合より計算量が増える事でしょ
じゃあどうする?という事で、メモ化や動的計画法の
話題に持っていくのが一つのアプローチ
これ単体では「くだらない」が、例としてはむしろ単純な事が重要
0356デフォルトの名無しさん
2012/07/27(金) 00:12:38.430357デフォルトの名無しさん
2012/07/27(金) 00:28:40.540358デフォルトの名無しさん
2012/07/27(金) 00:35:03.68#include <stdio.h>
long fib(int n)
{
static long data[50]={1,1};
if(n>=46) return -1;
if(data[n]==0) data[n]=fib(n-1)+fib(n-2);
return data[n];
}
int main(void)
{
int i;
for(i=0;i<50;i++) printf("%ld\n", fib(i));
return 0;
}
0359デフォルトの名無しさん
2012/07/27(金) 00:49:42.040360デフォルトの名無しさん
2012/07/27(金) 01:09:07.08動的計画法でしょ
仮になんでも知っているとして、それでも知っていることと書けること、それも納期や雑用等のプレッシャーのもとで書けること、とは相関はないと考えています。
二重ポインタ自体の理解困難性というデメリットと、二重ポインタ使用によるループ記述の見通しのよさというメリットを比較して、前者に重きを置く理由を教えてください。
0363デフォルトの名無しさん
2012/07/27(金) 05:21:28.320364デフォルトの名無しさん
2012/07/27(金) 05:39:56.40char *argv[]とか
0365デフォルトの名無しさん
2012/07/27(金) 05:40:25.05初心者はちゃんと理解もできないし。
0366デフォルトの名無しさん
2012/07/27(金) 06:47:49.33それ、ただキャッシュしてるだけやん。
なんでそれが動的計画なの?
0367デフォルトの名無しさん
2012/07/27(金) 10:02:55.880368デフォルトの名無しさん
2012/07/27(金) 10:04:28.040369デフォルトの名無しさん
2012/07/27(金) 10:14:18.17無職なのに納期?おかしな事を言うなあ
やっぱり狂ってる
0370デフォルトの名無しさん
2012/07/27(金) 11:28:24.190371デフォルトの名無しさん
2012/07/27(金) 13:51:49.24整数で扱える範囲を超えてシークできない
0372デフォルトの名無しさん
2012/07/27(金) 14:00:31.96Win32のCreateFile()、SetFilePointer()、RealFile()、WriteFile()を使えば
64bitまでアクセス出来る
0373デフォルトの名無しさん
2012/07/27(金) 14:02:49.210374デフォルトの名無しさん
2012/07/27(金) 14:03:20.130375デフォルトの名無しさん
2012/07/27(金) 14:05:48.620376デフォルトの名無しさん
2012/07/27(金) 14:06:28.80理解しにくい記述は避けるってのが他言語で覚えた掟
perlのワンライナーとかスゴイけど怖い
「これ修正して(´・ω・`)」
「無茶言わないで下さい(´・ω・`)」
ダブルポインターはそこまで鬼畜じゃないか?
0377デフォルトの名無しさん
2012/07/27(金) 14:07:59.67>>374
64bitだと1680万TiBあるのだが
そういうHDDが出る頃にはもうWin32なんて使われないだろう
からかってるのか?
0378デフォルトの名無しさん
2012/07/27(金) 14:22:14.46ダブルポインターなんて言葉自体ポインターを理解できない輩の言い訳にしか過ぎない。
ポインターに鬼畜もへったくれも無いので、必要なら必要なだけ使えばいい。
0379デフォルトの名無しさん
2012/07/27(金) 14:28:41.040380デフォルトの名無しさん
2012/07/27(金) 16:10:05.43デバッグ時だけチェック入りのコードにしてリリース時は速度稼ぐために外したいんだけど
0381デフォルトの名無しさん
2012/07/27(金) 16:15:45.710382デフォルトの名無しさん
2012/07/27(金) 16:18:57.94↓
value = GET(array, i);
こんなのか
0383デフォルトの名無しさん
2012/07/27(金) 16:20:21.770384デフォルトの名無しさん
2012/07/27(金) 16:21:29.700385デフォルトの名無しさん
2012/07/27(金) 16:28:02.680386デフォルトの名無しさん
2012/07/27(金) 16:29:10.310387デフォルトの名無しさん
2012/07/27(金) 16:31:57.840388デフォルトの名無しさん
2012/07/27(金) 16:33:14.96手間はかかるがかなり効果はあった
0389デフォルトの名無しさん
2012/07/27(金) 16:44:35.63それよさそう
お勧めのツールはある?
0390デフォルトの名無しさん
2012/07/27(金) 16:51:29.970391デフォルトの名無しさん
2012/07/27(金) 16:51:43.600392デフォルトの名無しさん
2012/07/27(金) 17:04:54.35定数等からある程度はわかるだろうけど実行時にしかわからないものもあるよね。
0393デフォルトの名無しさん
2012/07/27(金) 17:36:54.63VC++でいいと聞いてインスコしたんだけど、始めにロゴみたいなの出て一瞬で消えて起動さえしないんだけど。
どゆこと?教えてエロい人
ちなみにOSはWindows7
0394デフォルトの名無しさん
2012/07/27(金) 17:40:43.470395デフォルトの名無しさん
2012/07/27(金) 17:47:02.39ロンドン五輪・男子サッカーが26日開幕し、日本は強豪スペインに1−0で勝利した。中国メディアも日本の勝利を大きく伝え、騰訊網は「世界は日本を見くびっていた」とする評論記事を掲載した。
記事は、日本についてヨーロッパは「現代サッカーを速やかに吸収する素晴らしい学習者、模倣者」と認識し、中国は「日本のサッカーを学ぶのではなく、日本が他人からどうやって学んできたかを学ぶべき」
と考えてきたと論じたうえで「これは間違いなく日本に対する過小評価だ」「ヨーロッパにしろ中国にしろ、日本サッカーは『学び続ける』ことだけで強くなってきたと考えることにすっかり慣れてしまった」とした。
一方、スペイン戦の勝利後、日本代表の関塚隆監督や選手たちが口々に「ボール支配の時間が少なすぎた」と不満をこぼしたことに触れ、
「彼らは『学習者』としてスペインに挑んだのではない。日本の態度は強い『競争者』意識の表れだ」と分析。「この意識は非常に尊いものだ」とし、「学習」ばかりを強調する中国サッカーの意識を暗に批判した。
そして、強い競争者意識を持った日本がスペイン戦で見せたパフォーマンスについて「もっとチャンスを生かせていれば、5−0でスペインに勝ってもおかしくなかった」と評価した。(編集担当:柳川俊之)
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0727&f=national_0727_022.shtml
0396デフォルトの名無しさん
2012/07/27(金) 17:50:50.61始め、ってどの始めだ
0397デフォルトの名無しさん
2012/07/27(金) 18:15:18.31何度か再インスコしたんだけど無理だった。
>>396
起動すると「Visual C++ 2010 Express」て書かれて、その後その表示が消えて、そのまま何も起こらない。
0398デフォルトの名無しさん
2012/07/27(金) 18:19:58.70C++ でoperator[]
ただし、ポインタが境界外っていうのはだめだね。
bcc32 -v -vG はどうだったっけ。
0400デフォルトの名無しさん
2012/07/27(金) 19:48:09.660401デフォルトの名無しさん
2012/07/27(金) 19:57:23.71Cの文法でインデックス正誤がどうこうの要求自体が間違ってる
0402デフォルトの名無しさん
2012/07/27(金) 20:02:22.470403デフォルトの名無しさん
2012/07/27(金) 20:07:18.22面倒でもassert使え
0404デフォルトの名無しさん
2012/07/27(金) 20:12:33.370405デフォルトの名無しさん
2012/07/27(金) 20:19:38.86アホはおまえ
インデックス値で境界外を指す間違っていない例を知らないだけだ
0406デフォルトの名無しさん
2012/07/27(金) 20:22:40.59恥の上塗り
でも i が out of bounds で a[i] に読みにしろ書きにしろアクセスした時点でアウトでしょ?
だったら operator[] は有用だとおもうんですけど。
0408デフォルトの名無しさん
2012/07/27(金) 20:29:08.270409デフォルトの名無しさん
2012/07/27(金) 20:31:52.10煩わされる様な事は無いだろうから
無知は放置の方向で
0410デフォルトの名無しさん
2012/07/27(金) 20:34:52.96問題が有るからデバッグするんだろ
0411デフォルトの名無しさん
2012/07/27(金) 20:36:56.02それ、C99 以降ね。
あと、http://www.kouno.jp/home/c_faq/c2.html#6
>Dennis Ritchieは「Cの実装への根拠 のない馴れ馴れしさ」と呼んだ。
0413デフォルトの名無しさん
2012/07/27(金) 20:52:31.95http://logsoku.com/thread/raicho.2ch.net/newsplus/1319691749/
あと、文字列末尾の\0の分は足さなくてもいいのか?
0415デフォルトの名無しさん
2012/07/27(金) 21:18:34.01池沼か?
事件性があるのはお前の話題の遅さだろks
0416デフォルトの名無しさん
2012/07/27(金) 21:21:15.86なるほど、thx。
でも普段これをやるときは strlen() を使わざるを得ないな。だって不定長のデータを扱うためなんだろう?この手の構造体を使う場合というのは。
0418デフォルトの名無しさん
2012/07/27(金) 22:10:36.450419デフォルトの名無しさん
2012/07/27(金) 22:37:36.570420デフォルトの名無しさん
2012/07/27(金) 22:48:56.650421あきら
2012/07/27(金) 22:54:01.24説明お願いしたいです。
本当に困っているので
すみませんがよろしくお願いします!
int i=0,n=1000;
while(n>0){
n=n-7;
i++;
}
printf("i=%d,n=%d",i,n);
答えがi=143,n=-1になることを説明お願いします。
iは1000/143であってますか?
0422デフォルトの名無しさん
2012/07/27(金) 22:56:58.45エンターブレイン制作によるPSP用恋愛シミュレーションゲーム「フォトカノ」を原作にした、マンガ作品の単行本が連続してリリースされている。
7月25日にはアンソロジー「フォトカノ Omnibus Album」が、本日7月27日には柚木N'「フォトカノ Sweet Snap」の1巻が発売された。
「フォトカノ Omnibus Album」では成沢空、PONPON、星野円ら10名の作家が、各ヒロインをメインにしたエピソードを執筆。カバーイラストは
「鉄道むすめ」のキャラクターデザインで知られる、みぶなつきが手がけている。
一方「フォトカノ Sweet Snap」は、ヒロインのひとり・新見遙佳を軸に展開する長編ストーリー。月刊電撃マオウ(アスキー・メディアワークス)で
連載されている。アニメイト、コミックとらのあな、ゲーマーズ、まんが王、WonderGOOでは、「フォトカノ Sweet Snap」1巻の購入者に柚木N'
描き下ろしのイラスト特典を配布中。特典の数には限りがあるため、気になる人はお早めに。
またヤングアニマル(白泉社)で連載されている、ナイロン「フォトカノ Your Eyes Only」の1巻は8月24日にリリース。この発売を記念してヤング
アニマルと月刊電撃マオウでは、出版社の垣根を越えた出張掲載企画が実施される。8月10日発売のヤングアニマル16号には柚木N'が、
8月27日発売の月刊電撃マオウ10月号にはナイロンが登場し、互いに「フォトカノ」の出張マンガを発表する。
http://natalie.mu/comic/news/73658
http://blog.dengeki.com/wp055maoh/wp-content/uploads/2011/11/Ph5%EF%BC%88%E3%83%95%E3%82%A9%E3%83%88%E3%82%AB%E3%83%8E%EF%BC%89-410x300.jpg
http://blog-imgs-51.fc2.com/y/a/r/yaraon/82c5a3f7.jpg
http://blog-imgs-36.fc2.com/v/n/r/vnr2034/20120211162317b33.jpg
0423デフォルトの名無しさん
2012/07/27(金) 23:58:36.260424デフォルトの名無しさん
2012/07/28(土) 03:17:25.17>char namestr[MAXSIZE];
>ここでMAXSIZEは配列namestrに保存されうるどんな名前よりも大きい。
>しかしながらこの技法も、規格の厳密な解釈によると許されないようだ。
ってあるけどなんで?
http://c-faq.com/struct/structhack.html
に補完されているのをみると、この場合も構造体の malloc() では、
struct name *ret = malloc(sizeof(struct name)-MAXSIZE+strlen(newname)+1);
ととり、同じく臨機応変に構造体のサイズが変化するがごとくに使うやりかたを指しているようだ。
これら二つのやりかたに関する議論の内容は残念ながらしらない。
0426デフォルトの名無しさん
2012/07/28(土) 05:20:20.74int namelen;
char namestr[1];
};
これ初めて見たんだけどどう使うの?
はみ出すんじゃないの?
0427デフォルトの名無しさん
2012/07/28(土) 05:31:42.03BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
mallocとかで必要なだけ領域を確保してアクセスするんだよ
0428デフォルトの名無しさん
2012/07/28(土) 05:37:05.30サンクス
0429デフォルトの名無しさん
2012/07/28(土) 09:27:48.90何に困ってるのかよく解らんから、説明っつーても「書いてある通りだよ」としか。
0430デフォルトの名無しさん
2012/07/28(土) 11:57:25.56http://engawa.2ch.net/test/read.cgi/poverty/1343304708/
自称グローバル企業楽天三木谷「Windowsって漢字のアカウント許してるのかよw2バイトとかありえねぇ」
http://engawa.2ch.net/test/read.cgi/poverty/1343412938/
馬鹿な日本人が漢字使ってマンガしか読まないからw楽天三木谷日本人に宣戦布告か?
http://engawa.2ch.net/test/read.cgi/poverty/1343394199/
大炎上の楽天「Kobo」 「青空文庫で水増し」「英語しか使えない」「インストールできない」→レビュー非表示に
http://engawa.2ch.net/test/read.cgi/poverty/1343304708/
低評価レビューを隠して逃走した楽天・三木谷社長「細かいことで騒いでいるのは少数派ですよw」
http://engawa.2ch.net/test/read.cgi/poverty/1343390542/
三木谷「コボの出足は大成功、ネガティブな口コミは誤情報だから消し、内容を吟味して再掲載する」
http://engawa.2ch.net/test/read.cgi/poverty/1343403455/
0431デフォルトの名無しさん
2012/07/28(土) 13:58:58.70はい、合ってます
0432デフォルトの名無しさん
2012/07/28(土) 16:33:23.79いいえ、合ってません
0433デフォルトの名無しさん
2012/07/29(日) 00:18:52.00int main(){
void remain(){
i=2;
}
}
こんなの〜
0434デフォルトの名無しさん
2012/07/29(日) 00:25:50.94vectorの.clear()関数を使用した際にdeleteされますか?
0435デフォルトの名無しさん
2012/07/29(日) 00:40:03.31こういうこと?
http://ideone.com/XDEk3
できるっぽいね。初めてやってみたけど
0436433
2012/07/29(日) 00:46:49.28こんぱいら〜によっては出来ないんでしょうか?
わたしはVisual C++ 2010使ってますが関数の名前の箇所でコロン付けなさいと言われちゃう…
ルーチン呼び出しって思われてるのかな出来ませんでした><;
そのサイトで使われているのはgccでしょうかね
0437デフォルトの名無しさん
2012/07/29(日) 00:51:55.36調べてみたら関数のネストはGCCの拡張だそうです。
VC++ではできないみたいですね。
0438デフォルトの名無しさん
2012/07/29(日) 02:51:26.790439デフォルトの名無しさん
2012/07/29(日) 03:59:11.54いや。使いたいことはある。特定のルーチンを使いまわししたいときは特に。
最近では AVL木。木の回転のまえのルーチンはメインの関数内に入れたいなと。
0440デフォルトの名無しさん
2012/07/29(日) 04:29:25.290441デフォルトの名無しさん
2012/07/29(日) 05:28:20.51C++でクラス階層を重ねる手法に時代は移ってる
Cは全ての関数が同じレベルにあるので管理が難しい
0442433
2012/07/29(日) 07:53:37.18ではグニューCを使うべきなのでしょうか?VC++は学び始めた最初から使っていてある程度慣れてきた感もあるのですが…
関数の中に書く事でコードにある程度まとまった感が欲しかったのでやってみただけです
あと初心の段階でこういった依存性を体感できたのはちょっと嬉しかったり
よい経験に。
>>440
初心者なので分かりませんでしたw>ちゅうかっことじのまくろ
0443デフォルトの名無しさん
2012/07/29(日) 09:05:22.47int main()
{
/* 適当に処理 */
/* remain */ {
i = 2;
}
/* 適当に処理 */
return 0;
}
0444デフォルトの名無しさん
2012/07/29(日) 10:18:19.69制御構造(コール、リターン)を実現する記述方法って、なにかありますか?
0445デフォルトの名無しさん
2012/07/29(日) 10:24:02.64つ[goto]
0446デフォルトの名無しさん
2012/07/29(日) 10:24:26.860447デフォルトの名無しさん
2012/07/29(日) 10:36:33.46情報ありがとうございます
0448はちみつ餃子 ◆8X2XSCHEME
2012/07/29(日) 11:11:53.96C++ であれば関数内でクラス定義できるのを利用してこんな風に書けなくもない。
スレ違いだけど。
int i;
int main() {
struct d {
static void remain(){
i=2;
}
};
d::remain();
return 0;
}
0449433
2012/07/29(日) 11:15:29.69すいません。実は処理がi = 2だけじゃなく結構長いソースなので同化させちゃうと何度も呼び出さないといけなくなっちゃいます…
/* remain */ {
i = 2;
}
だけだとラベルがないので多数から参照できないお…、と言おうと思ったら>>444さんの会話の中で出ているジャンプ命令がありますねw
ですがすぱげってぃ〜状態になりませんか?ジャンプだらけだと…
やはりここは素直にmainルーチンのソトに置くのが妥当のようですね…。個人的に残念ではありますが
0450はちみつ餃子 ◆8X2XSCHEME
2012/07/29(日) 11:19:20.72処理系の独自拡張を使うのは可能な範囲では避けた方がいいというのが一般的な意見じゃないかと思う。
特に関数内での関数定義はマクロで切り分けたりもしづらいタイプの機能なので移植性を損いがち。
更に言うならめったに使わない機能なので、変なバグが残っていたり将来的にサポートが打ち切られる可能性も少なくない。
といった欠点は指摘できるけど、利点と欠点を比べてどう判断するかは個別の状況によるトレードオフの問題。
0451433
2012/07/29(日) 11:29:41.03はちみつ餃子さんありがとうございます。
C++で書いてもいいのですがとりあえずは>>449に書いた暫定対策で行きますw
クラス定義とかは初耳です。
C++は参考書買ってないので(X_x)...
勉強します…orz
0452デフォルトの名無しさん
2012/07/29(日) 12:17:56.38プログラミング業界って技術者がいらないの?
0453デフォルトの名無しさん
2012/07/29(日) 12:22:02.91こういう質問に答えてくれるプログラムが開発されたらいらなくなると思うよ。
0454デフォルトの名無しさん
2012/07/29(日) 12:37:48.51こういうやつがいるから技術者が必要なんだよ
0455デフォルトの名無しさん
2012/07/29(日) 13:07:29.510456デフォルトの名無しさん
2012/07/29(日) 13:19:15.60世界各地で同じようなものを再発明しないといけないんだよ
だから技術者はいくらいても足りない
0457デフォルトの名無しさん
2012/07/29(日) 14:24:05.39スレチだけど
Cで書いてると毎度同じような事を何回も書いてすごい時間を無駄にしているような
気がする
ライブラリ化して一般化すればいいんだけどMATLABのような物を一人で作る事は
まず無理
0458デフォルトの名無しさん
2012/07/29(日) 14:53:05.84あと少しのご辛抱です
0459デフォルトの名無しさん
2012/07/29(日) 14:58:33.390460デフォルトの名無しさん
2012/07/29(日) 15:03:15.97あと少しってどれくらいですか
0461デフォルトの名無しさん
2012/07/29(日) 15:10:28.74されません
0462デフォルトの名無しさん
2012/07/29(日) 15:14:20.34free()してください
0463デフォルトの名無しさん
2012/07/29(日) 15:14:41.760464デフォルトの名無しさん
2012/07/29(日) 15:33:58.22やっぱりfree()しない限りは開放されないんですよね。
じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・
と思ったらrealloc()なんてあるんですね。
ちょっといろいろ試してみます。
0465デフォルトの名無しさん
2012/07/29(日) 15:35:13.40Cでそういう有名なライブラリってglibc以外になんかある?
JavaとかC#やってから戻ってきたら文字列処理が
改めてめんどくさいと感じた
0466デフォルトの名無しさん
2012/07/29(日) 16:36:21.130467デフォルトの名無しさん
2012/07/29(日) 17:07:47.61CでSTLやるのあったやん
templateないのにどうやってジェネリックやってんのか知らんけど
http://cstl.sourceforge.jp/
ようやるわ
0468デフォルトの名無しさん
2012/07/29(日) 17:09:38.39>動的メモリ確保の意義ってないんじゃないのか
いやいや、これが非常に便利なんですよ。おいおい理解が深まると重宝しますよ。楽しみにしてください。
0469デフォルトの名無しさん
2012/07/29(日) 17:15:55.06ジェネリックってなに?
0470デフォルトの名無しさん
2012/07/29(日) 17:25:18.280471デフォルトの名無しさん
2012/07/29(日) 17:26:39.41あれC++のtemplate知らんの?
例えばint与えるとint用の比較演算子、代入演算子、コピーコンストラクタを生成
double与えると以下同文
class与えると以下同文
std::sort()とかstd:copy()使うとqsort()とかmemcpy()より速い事があるっしょ?
0472デフォルトの名無しさん
2012/07/29(日) 17:30:50.25> vector
> インデックスによる要素のランダムアクセスが可能。
そんなバカなと思いつつ、ワクワクしてみて、やっぱりな。
0473デフォルトの名無しさん
2012/07/29(日) 17:43:48.320474デフォルトの名無しさん
2012/07/29(日) 18:20:55.88多分生成的マクロだろう。 ## で識別子同士をひっつけるとか、いろいろ。
0475デフォルトの名無しさん
2012/07/29(日) 18:40:19.36http://japaneserank.enq1.shinobi.jp/comment_record/101289/
■1位 韓国 24871票
■2位 中国 614票
■3位 北朝鮮 203票
■総投票数 25982票
0476デフォルトの名無しさん
2012/07/29(日) 20:15:22.130478デフォルトの名無しさん
2012/07/30(月) 00:01:38.20>じゃああんまり動的メモリ確保の意義ってないんじゃないのかななんて思ったりするのですが・・・
動的メモリ確保の意義は、そのメモリが確保されている期間が、静的変数、auto変数と異なっている
ところにある。
静的変数:プログラム開始から終了まで(ユーザプログラム的には最初から最後まで)
auto変数:ブロックに入ってから出るまで
動的変数:mallocされてからfreeされるまで
主にauto変数と違ってfreeするまでずっと残っている点が利点
→逆にメモリリークが怖いわけだが、、、。
0479デフォルトの名無しさん
2012/07/30(月) 06:23:35.33http://engawa.2ch.net/test/read.cgi/poverty/1343579821/
PEACE&GREEN BOAT 2012 開催! −いま、コリアの人々と船出しよう
今年12月、4年ぶりにPeace&Green Boatが出航します。テーマは「脱原発」。
日韓3ヶ所の原子力発電所を訪れ原発の「いま」を見つめ、
原発立地地域の人々との交流を通じて「脱原発」を進めるために必要なことを考えます。
旅をより充実したものへとナビゲートしてくれるのが水先案内人の皆さん。
PEACE&GREEN BOAT2012には多彩な水先案内人の方々が参加予定です。
原発のない社会に向けて、共に各地をめぐり語り合います。(※順不同・敬称略)
アイリーン・美緒子・スミス (グリーン・アクション代表)
鎌田慧 (ルポライター)
田中優 (環境活動家、ap bank監事)
古市憲寿 (社会学者)
松田美由紀 (女優・写真家)
宮台真司 (社会学者)
山本太郎 (俳優)
[魚拓]
http://megalodon.jp/2012-0726-2316-13/www.peaceboat.org/cruise/pg2012/index.shtml
http://niceboat.org/10/s/10ko323392.jpg
または
http://i.imgur.com/lY0nX.jpg
[どうしても直接踏んでソースを確認したい人は]
http://www.pbcruise.jp/cruiseList/peacegreen/index.html
http://www.peaceboat.org/cruise/pg2012/index.shtml
0480デフォルトの名無しさん
2012/07/30(月) 08:22:35.19やっぱ専門板だとこうなっちゃうのかな
なにかトラウマみたいなことでもあったの?
0481デフォルトの名無しさん
2012/07/30(月) 10:41:50.30あれは何なの?
0482デフォルトの名無しさん
2012/07/30(月) 10:47:11.30ヘルパ関数(下請け関数)だろ
そんなの実装によっていくらでも入ってる
C++だとprivateにされちゃって呼び出せないだろうけど
#define private public
0483デフォルトの名無しさん
2012/07/30(月) 11:10:10.730484デフォルトの名無しさん
2012/07/30(月) 11:16:00.570485デフォルトの名無しさん
2012/07/30(月) 11:24:19.47C#プログラマなんてのは表面でCのプログラムを呼び出してるだけのカスでしかない
0486デフォルトの名無しさん
2012/07/30(月) 11:49:37.580487デフォルトの名無しさん
2012/07/30(月) 11:59:49.950488デフォルトの名無しさん
2012/07/30(月) 12:01:44.48Cプログラマなんてのは表面でアセンブラのプログラムを呼び出してるだけのカスでしかない
0489デフォルトの名無しさん
2012/07/30(月) 12:05:10.85機械語プログラマなんてのは表面で電子回路のプログラムを呼び出してるだけの半田ごてでしかない
0490デフォルトの名無しさん
2012/07/30(月) 12:17:05.220491デフォルトの名無しさん
2012/07/30(月) 12:31:16.96・それ入門レベルか?
・そんなもん、その人次第だろ…
・C言語の質問じゃねーし…
・まず日本語初心者や人間初心者を卒業してくれ
・流石にパソコン初心者やネット初心者はな…
・2chやプログラム板は初めてか?力抜けよ
ってな質問には相応の返答しかつかんが、その辺は加味してログ読んでる?
まあ、実際荒れてることもあるけど(夏休みだし余計にな)それはそれだからな
0492デフォルトの名無しさん
2012/07/30(月) 12:39:46.09C#・・・Windows専用に特殊にカスタマイズされたJavaのような言語
Windows専用だけあって(Monoのようなプロジェクトもあるがそれは別)
Windowsと非常に相性が良く、文法面では既にJavaをしのぎ、大抵の
GUIアプリケーションを多分現存する言語の中では最速で組み上げる
JITコンパイラ内蔵なので動作が意外に軽い
Java・・・マルチプラットフォームを売りにしているが、Windows上で動かす
には分が悪い
JITコンパイラを後付けしたせいかクライアントJREではホットスポットJITが
仇になって動きが重い
C#よりはるかにもっさり感じる
サーバーJREは起動が遅いが速度は速い
今や文法面でC#を追い掛ける奇妙な立場
C・・・最小限の機能しか揃ってないのでプログラミングは大変だが、高速な
ネイティブを吐き、しかもコンパクトなので組み込みに最適
という事で使用目的が違います
もちろん大規模GUIプログラムもCで書かれています
プログラマは地獄を見ますが
0493デフォルトの名無しさん
2012/07/30(月) 12:57:21.42今時そんなのあんのか?
0494デフォルトの名無しさん
2012/07/30(月) 13:01:55.32ざっくりわかりました,ありがとう.
ちなみにCの組み込みに最適と言うのは
アセンブリ動的にロードする(プラグ印を組み込ます)ような事にあたるのでしょうかね
0495デフォルトの名無しさん
2012/07/30(月) 13:10:39.020496デフォルトの名無しさん
2012/07/30(月) 13:15:43.19でもC++だからな
0497デフォルトの名無しさん
2012/07/30(月) 13:40:12.24違う
winmain関数とか
見たことなかった。
0498デフォルトの名無しさん
2012/07/30(月) 13:44:19.010499デフォルトの名無しさん
2012/07/30(月) 13:52:29.93メッセージループでぐぐれカス
0500デフォルトの名無しさん
2012/07/30(月) 13:55:09.31winMainは何言語なんですか?
0501デフォルトの名無しさん
2012/07/30(月) 14:13:13.720502デフォルトの名無しさん
2012/07/30(月) 14:16:09.980503デフォルトの名無しさん
2012/07/30(月) 14:21:00.74C言語のA<<3とかの<<って
どういう意味なんですか?
0504デフォルトの名無しさん
2012/07/30(月) 14:22:52.490505デフォルトの名無しさん
2012/07/30(月) 14:29:43.34ググっても<<は無視されて検索されるし
ほんとおねがいします
0506デフォルトの名無しさん
2012/07/30(月) 14:40:32.12Goooogle
0507デフォルトの名無しさん
2012/07/30(月) 14:49:19.39じゃあ芸能界で例えてください
0508デフォルトの名無しさん
2012/07/30(月) 15:01:10.41これで検索できるだろ。
0509デフォルトの名無しさん
2012/07/30(月) 15:08:34.53Aを8倍する
0510デフォルトの名無しさん
2012/07/30(月) 15:16:14.010511デフォルトの名無しさん
2012/07/30(月) 15:42:29.43理解できますた!
C言語簡単っすね^^
0512デフォルトの名無しさん
2012/07/30(月) 16:03:47.81馬鹿にでも理解出来る言語、それがC言語
0513デフォルトの名無しさん
2012/07/30(月) 16:08:28.35向いてないド素人でも一月
それ以上かかるなら他の道を探すといい
0514デフォルトの名無しさん
2012/07/30(月) 16:11:13.45ポインタ関連以外を3日で把握なら分かるけど。
0515デフォルトの名無しさん
2012/07/30(月) 16:15:22.62文法を習得するのは確かに簡単
でもポインタに踏み込んだらなまじ他の言語よりも暗い迷路に迷い込むよな
0516デフォルトの名無しさん
2012/07/30(月) 16:19:48.220517デフォルトの名無しさん
2012/07/30(月) 16:31:16.730518デフォルトの名無しさん
2012/07/30(月) 17:29:35.90ポインタ関連が一番重要だ
8bitCPUでもいじくって
そのあとにCやれ
0519デフォルトの名無しさん
2012/07/30(月) 17:35:19.93製品基盤や専用のコンパイラなんて売ってるんでしょうか?
0520デフォルトの名無しさん
2012/07/30(月) 17:37:43.830521デフォルトの名無しさん
2012/07/30(月) 17:42:22.63それてもZ80を秋月電子で買ってハンダでジュウジュウと弄れと言うのか
0522デフォルトの名無しさん
2012/07/30(月) 17:45:43.360523デフォルトの名無しさん
2012/07/30(月) 18:10:08.04まずはZ80のキットを購入してはんだごてを手に持ちながら
ハンドアセンブルくらいはした方がいい
そのほうがCPUとは何かを手に取るように実感できる
0524デフォルトの名無しさん
2012/07/30(月) 18:18:09.010525デフォルトの名無しさん
2012/07/30(月) 18:21:36.990526デフォルトの名無しさん
2012/07/30(月) 18:30:01.110527デフォルトの名無しさん
2012/07/30(月) 18:56:30.540528デフォルトの名無しさん
2012/07/30(月) 19:07:37.85ままごとにも程がある。
マイコンって何なの?何のためにあるの?
ハードウェアを学ぶ前置き学習用?
パソコンじゃだめなん?
0529デフォルトの名無しさん
2012/07/30(月) 19:11:22.040530デフォルトの名無しさん
2012/07/30(月) 19:12:01.67いまどきって何だよ
俺は趣味プログラマーなんだよ
世の中はこうなってるとかしらねーんだよ
0531デフォルトの名無しさん
2012/07/30(月) 19:13:06.37あ?パソコンの中身見たけど
あんなおもちゃみたいなブロック入って無かったよ?
もっと壮大なスケールの部品ばっかりだったしな!
0532デフォルトの名無しさん
2012/07/30(月) 19:13:41.27自動車やら電車やら電気メーカー行くなら知ってて損ないんじゃないの。
秋葉原が設計と家電の聖地だった時代もあるのよ。
0533デフォルトの名無しさん
2012/07/30(月) 19:18:46.94時間の無駄
0534デフォルトの名無しさん
2012/07/30(月) 19:20:59.230535デフォルトの名無しさん
2012/07/30(月) 19:26:02.370536デフォルトの名無しさん
2012/07/30(月) 19:30:18.59パソコソの蓋開けていじらねーだろどうせ
スレ違いなんだよ
電子機器スレ池
0537デフォルトの名無しさん
2012/07/30(月) 19:46:20.77製品の仕様はハード屋が決めるし組み込みプログラマなんざハード屋の奴隷にすぎない
ソフト屋がどんだけ頑張ってもテレビの画質は向上しない
組み込みプログラマなんてのは表面でハードの機能を呼び出してるだけのカスでしかない
奴隷になりたくなかったらソフト屋が主導権を握れる分野に行くかソフトもできるハード屋を目指せ
0538デフォルトの名無しさん
2012/07/30(月) 19:47:38.950539デフォルトの名無しさん
2012/07/30(月) 19:53:21.16http://engawa.2ch.net/test/read.cgi/poverty/1343626083/
日米同盟強化へ 米国は9条改憲歓迎 「反対まったくない」
憲法第9条に基づき、日本は集団的自衛権を行使できないとの解釈が
日米同盟強化への大きな障害になるとする認識はいま米側で広範に強まり、
米国では、現在党派を問わず反対はなく、むしろ暗に歓迎するという姿勢が大勢となった。
92年にはヘリテージ財団が「米国は非公式に日本に改憲を促すべきだ」とする政策提言を発表した。
先代ブッシュ大統領も公式会見で、日本が改憲を求めるならば問題はないと言明した。
民主党リベラル派のトム・ラントス下院外交委員長は「日本が安全保障でも大国にふさわしい役割を
果たすために憲法を改正しようとすることを強く支持する」と述べた。
東京都の石原慎太郎知事が16日にワシントンでの討論会で憲法破棄を提唱したとき、
米側の討論者のリチャード・ローレス元国防副次官は「日本の憲法は確かに米軍占領時代の遺物であり、
日本はそれを変える権利も自由も有している」と述べ、日本の憲法改正にいまの米側には抵抗がないことを明示した。
http://sankei.jp.msn.com/politics/news/120425/plc12042507090004-n1.htm
米国FOX報道 " We Need a Nuclear Japan " 我々は核武装した日本を求めるべきだ
http://www.youtube.com/watch?v=0TjgNRfGbAE
0540デフォルトの名無しさん
2012/07/30(月) 19:55:28.29Cで書いてると、期待どおりに生成されてるか(あるいはされてなくはないか)
逆アセンブルして確認することはよくあるから
0541デフォルトの名無しさん
2012/07/30(月) 19:58:20.33もっと言えば新製品開発とかなら理学部のほうがよくね?
理論を勉強するわけだから。
俺は工学部だから将来は高卒と仲良く工場勤務なんだろうな。
0542デフォルトの名無しさん
2012/07/30(月) 19:59:34.430543デフォルトの名無しさん
2012/07/30(月) 20:08:22.340544デフォルトの名無しさん
2012/07/30(月) 20:10:04.63高嶺の花だわ
0545デフォルトの名無しさん
2012/07/30(月) 20:10:22.370546デフォルトの名無しさん
2012/07/30(月) 20:10:54.880547デフォルトの名無しさん
2012/07/30(月) 20:11:09.57http://akizukidenshi.com/catalog/c/cmicon/
0548デフォルトの名無しさん
2012/07/30(月) 20:14:14.61¥4,980
0549デフォルトの名無しさん
2012/07/30(月) 20:16:23.97買えない特注のもんなん?
0550デフォルトの名無しさん
2012/07/30(月) 20:19:47.14モバイルのアプリくらいなら組ませてもらえるかもね
0551デフォルトの名無しさん
2012/07/30(月) 20:24:25.91Z80でもいんじゃないの。
0552デフォルトの名無しさん
2012/07/30(月) 20:28:06.490553デフォルトの名無しさん
2012/07/30(月) 20:28:47.38CASLが実用で役立つとか言ってるレヴェル
0554デフォルトの名無しさん
2012/07/30(月) 20:30:46.100555デフォルトの名無しさん
2012/07/30(月) 20:31:41.530556デフォルトの名無しさん
2012/07/30(月) 20:33:49.310557デフォルトの名無しさん
2012/07/30(月) 20:38:59.05ttp://www7.plala.or.jp/keny01/asm/win32/
0558デフォルトの名無しさん
2012/07/30(月) 20:39:18.000559デフォルトの名無しさん
2012/07/30(月) 20:47:23.640560デフォルトの名無しさん
2012/07/30(月) 20:48:19.95新CPUもガッカリだし
0561デフォルトの名無しさん
2012/07/30(月) 20:49:17.560562デフォルトの名無しさん
2012/07/30(月) 21:01:58.67マジどうなるかわからん
0563デフォルトの名無しさん
2012/07/30(月) 21:05:33.520564デフォルトの名無しさん
2012/07/30(月) 21:08:51.790565デフォルトの名無しさん
2012/07/30(月) 21:13:09.140566デフォルトの名無しさん
2012/07/30(月) 21:29:46.660567デフォルトの名無しさん
2012/07/30(月) 21:32:07.100568デフォルトの名無しさん
2012/07/30(月) 21:45:21.210569はちみつ餃子 ◆8X2XSCHEME
2012/07/30(月) 21:51:10.34アレって何だよ。
0570デフォルトの名無しさん
2012/07/30(月) 21:57:29.39ハード屋が新製品にRX採用したけど、本当に供給大丈夫なのかね
0571デフォルトの名無しさん
2012/07/30(月) 22:05:12.820572デフォルトの名無しさん
2012/07/30(月) 22:12:42.38> ソフト屋がどんだけ頑張ってもテレビの画質は向上しない
そこでおまえの人生なんか語られてもねえ・・・
自らは何もしなかったことがそんなに誇らしいのか? 国賊め
0573デフォルトの名無しさん
2012/07/30(月) 22:26:17.640574デフォルトの名無しさん
2012/07/30(月) 22:26:32.49く・・組み込まれた。
0575デフォルトの名無しさん
2012/07/30(月) 22:29:51.93ウォン安すぎて海外じゃサムスン無双、人件費の安さで中華企業がががが。
日本の技術者も中国語、インド語が必要な時代になるよ。
0576デフォルトの名無しさん
2012/07/30(月) 22:32:04.75特にワンセグは補間の仕方でずいぶん変わる
0577デフォルトの名無しさん
2012/07/30(月) 23:00:15.71ハードでも出来るところはハードにやらせた方がいい
結果全部ASICやらFPGAに置き換えられるならそれが一番
0578デフォルトの名無しさん
2012/07/30(月) 23:00:55.37最新型のコクピットに座りながら
よだれこいて寝てた詐欺野郎がおまえの真の姿だ
おまえ存在そのものが製造業全員の敵なんだよ
0579デフォルトの名無しさん
2012/07/30(月) 23:01:13.970580デフォルトの名無しさん
2012/07/30(月) 23:05:36.400581デフォルトの名無しさん
2012/07/30(月) 23:09:41.500582デフォルトの名無しさん
2012/07/30(月) 23:14:19.61言えたらいいな。
0583デフォルトの名無しさん
2012/07/30(月) 23:17:46.87「自立した研究者とはなんぞ」やと教える博士課程の質に一縷の望みを預けているのが業界
工学部に在籍しながら耳を疑う発言を繰り返すC大T田教授が博士課程の規範という現実から目を背けたい
0584デフォルトの名無しさん
2012/07/31(火) 00:02:44.170585デフォルトの名無しさん
2012/07/31(火) 00:11:51.03ぶっちゃけ外注に出しやすいんでしょ
x86よりもマルチタスク向けの命令が強化されてるし
0586デフォルトの名無しさん
2012/07/31(火) 00:32:42.850587デフォルトの名無しさん
2012/07/31(火) 01:10:37.990588デフォルトの名無しさん
2012/07/31(火) 01:49:12.66日比谷公園で行われていた反日左翼たちの集会の様子
その後、この労組を中心とした反原発デモ行進が始まった。wwwww
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1478.jpg
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1479.jpg
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1494.jpg
これで、「多様な人たちが自由に何の制約もなく参加している」とか
「組織型の運動との違いを感じ…」などと良くも言えるものだ!
7月29日 国会包囲 反原発デモに参加された一般人???の方々wwwww
日大全共闘
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1540.jpg
芝工大全学闘&明大全共闘
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1542.jpg
アジア共闘●&三里塚闘争勝手連&日米軍事同盟反対 アジア米軍総撤収
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1547.jpg
9条の会
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1582.jpg
郵政労働者ユニオン
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1588.jpg
芸大教組
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1600.jpg
緑の党
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/DSCN1603.jpg
ピースボート (社民党&北朝鮮)
http://i.imgur.com/lY0nX.jpg
http://mamorenihon.files.wordpress.com/2011/05/peaceboat.jpg
今話題の滋賀県教組
http://takemikazuchi.iza.ne.jp/images/user/20120723/1875097.jpg
>インド語
なにそれ?
0590デフォルトの名無しさん
2012/07/31(火) 02:36:38.02やる
0591デフォルトの名無しさん
2012/07/31(火) 05:09:46.95なぜベストを尽くさないのか?
0592デフォルトの名無しさん
2012/07/31(火) 05:24:26.88ベスト電器
0593デフォルトの名無しさん
2012/07/31(火) 07:06:02.850594デフォルトの名無しさん
2012/07/31(火) 07:21:30.230595デフォルトの名無しさん
2012/07/31(火) 07:59:52.592つも
科学技術大学
だよ
今度からは間違えんなよ
ついでに科学技術大学もやっぱり大量にあるからな、
間違えんなよ
ともすれば実物の大学をさしちまうぞ
0596デフォルトの名無しさん
2012/07/31(火) 11:41:26.22今はCでもハード記述出来るらしいが
ファームのC→アセンブラ(マシン語)みたいにC→HDLを生成する
0597デフォルトの名無しさん
2012/07/31(火) 12:39:31.830598デフォルトの名無しさん
2012/07/31(火) 21:36:25.39高位合成で使われるのはCのサブセットだよ
オリジナルのCから、ハードウェアへの変換が
困難な仕様を削除されたものが多い
0599デフォルトの名無しさん
2012/07/31(火) 22:22:11.19誰も質問しなくなったwww
0600デフォルトの名無しさん
2012/07/31(火) 22:29:08.24見逃してる質問があったら教えてくれ
0601デフォルトの名無しさん
2012/07/31(火) 22:36:11.40http://farm8.staticflickr.com/7145/6520530187_c0c80ff8a7_b.jpg
http://farm8.staticflickr.com/7013/6719110227_2855a7ef07_b.jpg
http://farm7.staticflickr.com/6188/6138002658_85eb1d2445_b.jpg
http://farm8.staticflickr.com/7205/6887664245_d57b0f4279_b.jpg
http://farm8.staticflickr.com/7037/6891009867_1095f43d34_b.jpg
0602デフォルトの名無しさん
2012/07/31(火) 22:37:30.55RTLな
language じゃなく level が変わらなきゃ意味ない
0603デフォルトの名無しさん
2012/07/31(火) 23:04:22.77例えば前のプログラムでchar str="Orange";
みたいなプログラムを作って、実行終わって
どこかのメモリにOrangeという値が入ってますよね。
その番地を探すプログラムを教えて下さい。
0604デフォルトの名無しさん
2012/07/31(火) 23:14:45.03ダウトくせーな
OSがサッサと掃除してんじゃね?
0605デフォルトの名無しさん
2012/07/31(火) 23:24:01.17char str="Orange";
は
char *str="Orange";
の間違いだとして、
printf("%p\n", str);
でアドレスが分かる。
但しデバッグコードが入ったせいで、アドレスが変わるかもしれん。
後は、コンパイルオプションでマップファイルを出力させたり、nmみたいな
コマンドを使うとかかな。
0606デフォルトの名無しさん
2012/07/31(火) 23:31:43.420607デフォルトの名無しさん
2012/07/31(火) 23:32:24.490608デフォルトの名無しさん
2012/07/31(火) 23:44:21.510609デフォルトの名無しさん
2012/08/01(水) 00:25:08.36セキュリティホールだっつーの。
0610デフォルトの名無しさん
2012/08/01(水) 00:55:26.25よっ!変態くん!
0611デフォルトの名無しさん
2012/08/02(木) 12:26:32.72今どきではそうとう運が良くないと見れない。
プログラム起動時にメモリ配置が毎回ランダムになるよう
設定されているのがほとんどなので、スタックやヒープを
覗ける可能性がぐんと低くなった。
あとmalloc系は仕様はともかく実装上ゼロクリア扱いしてるはず。
0612デフォルトの名無しさん
2012/08/02(木) 12:34:07.510613デフォルトの名無しさん
2012/08/02(木) 12:37:45.200614デフォルトの名無しさん
2012/08/02(木) 12:50:37.680615デフォルトの名無しさん
2012/08/02(木) 13:29:50.450616デフォルトの名無しさん
2012/08/02(木) 14:46:54.140617デフォルトの名無しさん
2012/08/02(木) 16:01:49.790618デフォルトの名無しさん
2012/08/02(木) 17:15:39.150619デフォルトの名無しさん
2012/08/02(木) 17:19:51.770620デフォルトの名無しさん
2012/08/02(木) 18:19:40.520621デフォルトの名無しさん
2012/08/02(木) 19:09:57.360622デフォルトの名無しさん
2012/08/02(木) 19:26:34.120623デフォルトの名無しさん
2012/08/02(木) 21:01:41.410624デフォルトの名無しさん
2012/08/02(木) 21:12:29.960625デフォルトの名無しさん
2012/08/02(木) 21:24:38.20って10のはずですが何故か0になります。何故でしょうか?
積ではなく和のはずです。
a=3.0として
printf("%f\n",++a);が4になります。何故でしょう?
++aはaをインクリメントするから++a自体は3でaが4だと思うのですが。
0626デフォルトの名無しさん
2012/08/02(木) 21:25:12.29って10のはずですが何故か0になります。何故でしょうか?
積ではなく和のはずです。
a=3.0として
printf("%f\n",++a);が4になります。何故でしょう?
++aはaをインクリメントするから++a自体は3でaが4だと思うのですが。
0627デフォルトの名無しさん
2012/08/02(木) 21:27:00.85printf("%d %d \n",++a,a);
結果 4 3
何故だ.......
++aしたのに何故aが3?
0628627
2012/08/02(木) 21:28:28.35int a=3;
a++;
printf("%d \n",a);
このときは結果4になる....
震えがとまらない。怖すぎる。何故だ。
0629627
2012/08/02(木) 21:29:53.49printf("%d %d \n",a++,a);
3 3
えええwwwwwwwwww
まじで分からないので解説を。
0630デフォルトの名無しさん
2012/08/02(木) 21:30:18.30誰かに任せた
0631デフォルトの名無しさん
2012/08/02(木) 21:32:36.36fuck(a,++a,++a)
0632デフォルトの名無しさん
2012/08/02(木) 21:34:03.70foo(a++�@,a++�A,a++�B);
�@→�A→�B とか �B→�A→�@ とか順番は定まっていない
のでそんなことスンナ
0633627
2012/08/02(木) 21:35:00.31a++と++aの違いはどうでもいいです。
一番怖いのが
↓
int a=3;
printf("%d %d \n",++a,a);
結果 4 3
分けて書くと
結果 aは4になってる
意味が分からない。
0634627
2012/08/02(木) 21:36:05.44なるほど
ってことは
a=3
++a;
printf("%d\n",a);
でも環境によっては3ってこともあるのでしょうか?
0635デフォルトの名無しさん
2012/08/02(木) 21:37:43.57今晩は馬鹿、エアコンのスイッチいれた?
0636デフォルトの名無しさん
2012/08/02(木) 21:38:00.110637627
2012/08/02(木) 21:38:56.52エアコンのスイッチって何でしょうか。
0638デフォルトの名無しさん
2012/08/02(木) 21:39:16.10それは無い
a=3 の次に ++a が行われて printf の引数に a を渡す
>printf("%f\n", 10 || 0);
>って10のはずですが何故か0になります。何故でしょうか?
http://codepad.org/mDg8Dx8P
参考:http://codepad.org/vj989ZaR
10 にも 0 にもならないようだ。処理系はなんですか?
1) || は論理和、int で 1 を返す。
2) printf() は、第一引数と第二引数以下が完全にマッチしないと想定した結果を返さない。
ただし例外として float -> double の格上げ、あるいは int への格上げがある。
ちょっと複雑だが、こう考えるとよい。コンパイラは printf() を翻訳するとき、第一引数 "%f\n" のことなどさっぱり忘れて第二引数以下を翻訳する。
第一引数が %f だろうが %d だろうが無頓着、無視、無関心に、第二引数 10 || 0 を単独で存在するかのように翻訳する。
0640627
2012/08/02(木) 21:40:12.02ありがとうございました。
ところでprintf("%f",10 || 0);が0になるのは何故でしょうか?
0641デフォルトの名無しさん
2012/08/02(木) 21:40:18.78ぽっぽぽぽぽぽ
ぽぽぽっぽ
ぽんぽぽぽぽぽ
ぽんぽぽぽ
ぽぽっぽぽぽっぽ
ぽんぽぽぽ
ぽぽんぽぽぽんぽぽぽぽぽぽ
0642627
2012/08/02(木) 21:46:35.79処理系はWindowsXPです。
後
printf("%f\n", 10%3-1.0 <4.0 ? 1 : 0);
の値も0になります。何故でしょうか?
10%3は1ですから 1-1.0<4.0で正しい。
正しいときは?の左側を表示する関数なので
1と表示されるはずなのに0です。
何故ですか?
http://codepad.org/Xkkd3zds
0 になる可能性が想像できない。コンパイラのメーカーや種類を教えてください。
0644デフォルトの名無しさん
2012/08/02(木) 21:51:16.45%d にしろ
0645デフォルトの名無しさん
2012/08/02(木) 21:51:48.210646デフォルトの名無しさん
2012/08/02(木) 21:52:58.02頭熱暴走してないか?
0647627
2012/08/02(木) 21:54:33.310ではなく0.00000ですね。
コンパイラはvisual studioです。
PCのメーカーは東芝で機種はdynabookです。
0648デフォルトの名無しさん
2012/08/02(木) 21:55:57.01↓
前回成功時のファイルを実行
0649デフォルトの名無しさん
2012/08/02(木) 21:56:27.74難しい話になりますが、「シーケンスポイント/副作用完了点」というキーワードが該当します。
http://www.kouno.jp/home/c_faq/c3.html#8
これを納得するには数々の経験が必要となりますので、当面の間は、関数の引数に ++ とか -- とかは使わない方針をとるのがいいでしょう。
f(a, b, c) なら c, b, a の順に処理されるコンパイラが圧倒的に多いしそうなる理由もある、これを仮定するのは非常にまずいとはいえ。
0651デフォルトの名無しさん
2012/08/02(木) 22:02:48.05>0.000000
0652デフォルトの名無しさん
2012/08/02(木) 22:22:10.94ttp://ideone.com/vYbQB
0653はちみつ餃子 ◆8X2XSCHEME
2012/08/02(木) 22:25:05.7500000001 00000000 00000000 00000000
これを浮動小数点と解釈して符号部、指数部、仮数部に区切りなおすと
0 00000010 00000000000000000000000
となる。
これは約 2.35e-38 というめっちゃ小さい値なので、 %f の書式で表すと 0.000000 となってまう、
ということなんじゃないかと思う。
0654デフォルトの名無しさん
2012/08/02(木) 22:28:58.65%fはdoubleだヴォケ
0655デフォルトの名無しさん
2012/08/02(木) 22:38:28.18printf("%f\n", 1.0F);
printf("%f\n", 1.0);
printf("%f\n", (int)1.0);
0.000000
1.000000
1.000000
1.000000
0656デフォルトの名無しさん
2012/08/02(木) 22:39:54.68j = 1, k = 3で
i = ++j, k;
とした時の i の値
実行せずに何になるか当ててみよう
0657デフォルトの名無しさん
2012/08/02(木) 22:41:06.970658デフォルトの名無しさん
2012/08/02(木) 22:42:27.890659デフォルトの名無しさん
2012/08/02(木) 22:43:05.050660デフォルトの名無しさん
2012/08/02(木) 22:44:31.880661デフォルトの名無しさん
2012/08/02(木) 22:45:39.310662デフォルトの名無しさん
2012/08/02(木) 22:48:08.900663デフォルトの名無しさん
2012/08/02(木) 23:03:24.39ttp://ideone.com/hxdVB
4番目でちょっと悩んじゃった
可変長引数は書式関係なくint(ex:4バイト)、double(ex:8バイト)、*(ex:4バイト)
でスタックに積むからゴミが残ってたんだよね
0664デフォルトの名無しさん
2012/08/02(木) 23:09:00.690665デフォルトの名無しさん
2012/08/02(木) 23:24:42.300666デフォルトの名無しさん
2012/08/02(木) 23:27:46.580667デフォルトの名無しさん
2012/08/02(木) 23:36:19.28ちなみに問題文に誤りがあってセミコロンが足りないが、そういう問題じゃない
0668はちみつ餃子 ◆8X2XSCHEME
2012/08/02(木) 23:43:57.23うわ┗(^o^ )┓ああああ┗(^o^ )┓ああああ┗(^o^ )┓ぁぁぁぁ┗(^o^ )┓ああああ┗(^o^ )┓
「ANSI C言語辞典」では float もアリって書いてあったのでそれを信用したんだが…。
http://gazo.shitao.info/r/i/20120802234040_000.png
JIS 規格にはそんなこと書いてなかった!!!
http://gazo.shitao.info/r/i/20120802234141_000.png
でもまぁ原理としては同じなのでそこらへんは柔軟に読み替えてくだせぇ。
0669デフォルトの名無しさん
2012/08/02(木) 23:50:18.11臨機応変に対応
ですね
すばらしい文言です
あなたを師と仰ぎ どこまでも付いてゆきましょう
0670デフォルトの名無しさん
2012/08/02(木) 23:51:29.310671デフォルトの名無しさん
2012/08/02(木) 23:55:03.45おまえさ、そんなの貼って誰かありがたがるとでも思っているわけ?
仮にいたとして、おまえと同類だけだぞ
0672はちみつ餃子 ◆8X2XSCHEME
2012/08/02(木) 23:58:37.97銀英伝は二次創作をいくつかちょろっと読んだだけだが、
それは印象的な場面としてよく使われてるみたいだねぇ。
0673デフォルトの名無しさん
2012/08/03(金) 00:01:03.25見たこと無い漢字とか明らかに輪郭がくっきりしてないんですが。
何十年も昔のPCからそうだったんですか?
0674デフォルトの名無しさん
2012/08/03(金) 00:06:20.56ずいぶんと参考になりました。私はビット表現まで追いかけてなかったがばれてしまった‥‥‥。それはそれで一層いや一生の恥ですorz
それはそうと、それ、厳密な典拠は特定できていなくてちょっと困っています。
ISO/IEC 9899:1999 6.5.2.2.6
If the expression that denotes the called function has a type that does not include a
prototype, the integer promotions are performed on each argument, and arguments that
have type float are promoted to double. These are called the default argument
promotions.
で、これはプロトタイプでは ... で表現されているために「プロトタイプに含まれない式」になってしまった場合、その引数は float->double になってしまうようです。
問題は
If the function is defined with a type that includes a prototype, and
either the prototype ends with an ellipsis (, ...) or (略), the behavior is undefined.
がなんのことやらさっぱり。
0675デフォルトの名無しさん
2012/08/03(金) 00:06:29.140676デフォルトの名無しさん
2012/08/03(金) 00:09:09.640677デフォルトの名無しさん
2012/08/03(金) 00:10:45.730678デフォルトの名無しさん
2012/08/03(金) 00:25:33.780679デフォルトの名無しさん
2012/08/03(金) 00:33:35.000680デフォルトの名無しさん
2012/08/03(金) 00:44:42.570681はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 00:59:57.45前者は省略記号 (...) とは関係ないんじゃないかな。
「プロトタイプを含まない型を持つ関数」というのは例えば
hoge();
というようなプロトタイプ宣言されている関数ということで、
これに対して
hoge(14, 1.24f);
というような呼び出しをした場合にはこの 1.24f は double に拡張されるということ。
後者については前者のようなプロトタイプ宣言があった上で
hoge(int a, double b) { /* 省略 */ }
というような定義であれば大丈夫なんだけど、
hoge(int a, ...) { /* 省略 */ }
という定義だとか
hoge(int a, float b) { /* 省略 */ }
とかだったら未定義になるということを言いたいんだと思う。
つまり前段はプロトタイプ宣言のことで後者は定義ってことで。
0682デフォルトの名無しさん
2012/08/03(金) 01:11:33.960683はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 01:16:42.64つまりはその項目は今回の printf の件とは無関係。
float は float として渡されるのであり、
受取った方がその型を知る方法は書式指定によると理解していいと思う。
0684デフォルトの名無しさん
2012/08/03(金) 01:33:00.41規格の後段について、よく理解できました。ありがとうございます。
規格の前段の記述が hoge() のみの事情なのか printf() にも適用されるのかは、意見が相違するようですね。
>>683
ふむ。
しかしいまとなっては参考にするには古いK&R2=C89・付録A7.3.2 には次のとおりで(以下<>内はQZ)
省略形<=", ...">の場合、引数<実引数>の数はパラメータ<=関数定義やプロタイプ宣言での引数型宣言>の数と等しいかあるいはそれより多くなっている必要がある。
型が明示されているパラメータの後に続く引数は、前のパラグラフ<=K&R1の関数定義について>で述べた省略時の引数格上げの受ける。
とありC89 の場合であれば printf() のような可変長引数の、可変長部分、すなわちプロトタイプのない実引数は格上げを受ける、と読み取れます。
なお、K&R1 ではどんな float も double に変換されてしまうという(int main(); int c; char **v; だったし)事情が、
K&R2=C89 では可変長部分やプロトタイプの部分に限定されるようになったとは理解しています。
ともあれ、これに対応する C99 の記述はどこなのか、それとも C99 は自動格上げを行う範囲をさらにさらに限定したのかいまいち判然としないところです。
>受取った方がその型を知る方法は書式指定によると理解していいと思う。
これはK&R1の呪縛に囚われた身には辛い。>>639 と解釈してきた以上、printf() 第一引数の書式指定が printf() の第二引数以降の型を規定するとは考えにくいのです。
0686685
2012/08/03(金) 06:53:41.04×K&R2=C89 では可変長部分やプロトタイプの部分に限定される
○K&R2=C89 では可変長部分やプロトタイプの明示されない部分に限定される
0687デフォルトの名無しさん
2012/08/03(金) 07:17:19.710688デフォルトの名無しさん
2012/08/03(金) 07:26:00.770689デフォルトの名無しさん
2012/08/03(金) 08:28:15.320690デフォルトの名無しさん
2012/08/03(金) 08:31:35.420691デフォルトの名無しさん
2012/08/03(金) 08:36:36.280692デフォルトの名無しさん
2012/08/03(金) 08:38:08.300693デフォルトの名無しさん
2012/08/03(金) 08:40:40.74入門者なんだから
入門者だと思って太めに見てやれよ
たかが入門者だぞ
入門者に目くじら立ててどうする
入門者は入門者だと割り切って接するのが一番の方法だよ
0694デフォルトの名無しさん
2012/08/03(金) 08:45:27.000695デフォルトの名無しさん
2012/08/03(金) 09:58:20.70入門者が返答してるの?
0696デフォルトの名無しさん
2012/08/03(金) 10:02:13.47scanf使いこなせ と言ってるお方は
そういう部類のレヴェルだろ
察しろよ
0697デフォルトの名無しさん
2012/08/03(金) 10:05:54.26エラー処理が不要なら簡潔に書けるし
0698デフォルトの名無しさん
2012/08/03(金) 10:24:29.69http://quaternion.pineappledesign.org/c
0699デフォルトの名無しさん
2012/08/03(金) 12:07:05.32それはさて、引き数リストを明示していない関数宣言のことは、プロトタイプ宣言とは呼ばないんじゃないのか?
0700デフォルトの名無しさん
2012/08/03(金) 12:13:53.680701デフォルトの名無しさん
2012/08/03(金) 12:28:17.600702デフォルトの名無しさん
2012/08/03(金) 12:41:59.03printf("%f", 1.0F);
戻り値だけ宣言
int printf();
....
printf("%f", 1.0F);
引数も宣言してるけど、可変長引数でした
int printf(const char *, ...);
....
printf("%f", 1.0F);
0703はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 12:47:10.35それもそうだな。 たぶん呼ばない。
>>701
いや、引数リストが無いのは可変長引数であることを意味しない。
0704デフォルトの名無しさん
2012/08/03(金) 12:50:30.35いい加減C++っぽく統一してほしい
0705デフォルトの名無しさん
2012/08/03(金) 12:53:57.560706デフォルトの名無しさん
2012/08/03(金) 12:54:16.15ん、「明示してない」ってのは「無い」っていう意味で言ってたの?
0707はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 12:58:08.12俺が根拠にしてるのは JIS なんだが、そこでの記述はこうなってる。
> 呼び出される関数を表す式が、関数原型を含まない型をもつ場合、
> 各実引数に対して整数拡張を行い、型 float をもつ実引数は型 double に拡張する。
日本語でもかなりわかりにく表現だな。
... で終わる宣言がプロトタイプを含まない宣言なのであるとすれば、
void hoge(float a, ...);
という宣言に対して
hoge(1.23f, 1);
と呼び出した場合でもこの 1.23f は一旦 double に拡張されるってことにならないか?
それも変な話だと思う。
更に読み進めていくと
> 関数原型宣言子における省略記号標記は、
> 最後に宣言されている仮引数の直後から実引数の型変換を止める。
> 残りの実引数に対しては、規定の実引数拡張を行う。
とあるので printf に渡した第二引数以降は型変換しないということだでいいんじゃないかな。
0708デフォルトの名無しさん
2012/08/03(金) 13:55:03.44原因はオーバーフローなのか
どうなのか仕組みから説明しないと・・・
そこが肝要だと思うのです。
0709デフォルトの名無しさん
2012/08/03(金) 14:24:31.25ならない。aという引数はプロトタイプを持つのだから。
プロトタイプを持たないのは...の部分。
>とあるので printf に渡した第二引数以降は型変換しないということだでいいんじゃないかな。
多分理解がおかしい。一部の変換(配列→ポインタ、関数→ポインタ、LValue→RValue)もするし、拡張もする。
例えば、
char *p="ZZZ";
printf( "%p", p );
はchar*を(LValue→RValueはするけど)void*へは変換しないで積む。
これが "実引数の型変換を止める"と言うこと(というか、変換のしようがない)。
# ちなみに、これは鼻から悪魔が出るかもしれないコード。%pはvoid*を要求するから。
で、
printf( "%f", 4.2f );
は "規定の実引数拡張"が行われてdoubleな4.2がprintfに渡る。
0710はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 14:45:28.91> ならない。aという引数はプロトタイプを持つのだから。
> プロトタイプを持たないのは...の部分。
俺もそう思うんだが、文章の曖昧さの話。
呼び出される関数が関数原型を含まない型をもつか否かで
挙動が分かれるようにも読める。
> 呼び出される関数を表す式が、関数原型を含まない型をもつ場合、
> 各実引数に対して整数拡張を行い、
> 型 float をもつ実引数は型 double に拡張する。
本当は
> 呼び出される関数を表す式が、関数原型を含まない型をもつ場合、
> (関数原型を含まない) 各実引数に対して整数拡張を行い、
> (関数原型を含まない) 型 float をもつ実引数は型 double に拡張する。
ってことでいいんかな。
0711デフォルトの名無しさん
2012/08/03(金) 14:58:07.680712はちみつ餃子 ◆8X2XSCHEME
2012/08/03(金) 15:11:29.41> 多分理解がおかしい。
> 一部の変換(配列→ポインタ、関数→ポインタ、LValue→RValue)もするし、拡張もする。
言葉が足りんかった。
元々の QZ 氏の主張を要約すると
「省略子を使った場合はプロトタイプが無いわけだから float → double への変換が行われる」
というものだったけど、それに対して「省略子で書いたことによっては変換は起こらない」という
ことを言いたかったもので、一般的な変換についてまで否定したわけじゃないよ。
0713デフォルトの名無しさん
2012/08/03(金) 15:43:07.15使わないような難しい漢字は何で輪郭がぼやけてるんでしょうか?
あれはどういうことですか?
C言語では最大何語の漢字をサポートしてますか?
0715デフォルトの名無しさん
2012/08/03(金) 16:34:13.32俺はひとりに決まってるだろ
0716デフォルトの名無しさん
2012/08/03(金) 16:50:08.880717デフォルトの名無しさん
2012/08/03(金) 16:58:35.10その質問のどこがCの質問?
それぞれGUI環境や文字コードの話だと思うのだが。
0718デフォルトの名無しさん
2012/08/03(金) 17:44:24.51でもC言語のchar a;
aが67でしょ?
対応してるじゃん。
a='2000'だと何かの漢字になったりしないの?
0719デフォルトの名無しさん
2012/08/03(金) 17:50:03.84アホ
0720デフォルトの名無しさん
2012/08/03(金) 17:53:08.180721デフォルトの名無しさん
2012/08/03(金) 17:56:17.69graph='F';
と
するとgraph=Fつまり文字を記憶する変数であり
C言語は数値だけでなく文字も記憶できるんですよね?
だから
graph='数';
みたいには出来ないのはなぜかなと。
0722デフォルトの名無しさん
2012/08/03(金) 17:57:21.45wchar_t があるだろ
0723デフォルトの名無しさん
2012/08/03(金) 17:58:47.570724デフォルトの名無しさん
2012/08/03(金) 18:04:09.600725デフォルトの名無しさん
2012/08/03(金) 18:05:59.67おまえがC言語とOSがわかっていないことは分かる
0726デフォルトの名無しさん
2012/08/03(金) 18:06:17.55stdio.h自体はC言語と関係ないもんなんですか?
0727デフォルトの名無しさん
2012/08/03(金) 18:12:03.97哲学的・形而上学的な観点から、
あなたは〈関係〉という概念を、どのように把握してらっしゃいますか?
0728デフォルトの名無しさん
2012/08/03(金) 18:12:14.150729デフォルトの名無しさん
2012/08/03(金) 18:17:43.74分からないプログラムは組めるけど機械的にやってるから
OSに命令を与えるための素材を集めてGUIによって可能にした系=C言語?
0730デフォルトの名無しさん
2012/08/03(金) 18:18:00.290731デフォルトの名無しさん
2012/08/03(金) 18:22:52.670732デフォルトの名無しさん
2012/08/03(金) 18:25:01.82気をつけましょうね プログラマのみなさん
0733デフォルトの名無しさん
2012/08/03(金) 18:25:29.37冗談抜きで、日本語の表現力を少しは身に着けたほうがいいぞ。
ついでに、パソコンの仕組みも。
0734デフォルトの名無しさん
2012/08/03(金) 18:32:48.390735デフォルトの名無しさん
2012/08/03(金) 18:36:56.000736デフォルトの名無しさん
2012/08/03(金) 18:37:22.180737デフォルトの名無しさん
2012/08/03(金) 18:40:06.08C言語以外の言語からも呼び出せますしー
0738デフォルトの名無しさん
2012/08/03(金) 18:43:12.26C使いにAPI関を連断られると厳しいものがあるなw
0739デフォルトの名無しさん
2012/08/03(金) 18:47:10.930740デフォルトの名無しさん
2012/08/03(金) 18:51:24.150741デフォルトの名無しさん
2012/08/03(金) 18:59:46.52プログラミング言語はどうやって作るのですか?
今はWindowsがあるから何でも可能ですが昔の低水準マシンにおいて
はどうやって作っていたのでしょうか?
0742デフォルトの名無しさん
2012/08/03(金) 19:00:17.680743デフォルトの名無しさん
2012/08/03(金) 19:05:44.90誰もがやりたくない事なんだ
0744デフォルトの名無しさん
2012/08/03(金) 19:07:02.780745デフォルトの名無しさん
2012/08/03(金) 19:09:12.81メタなCを喰って実行コードを吐くコンパイラをCで書いといて
アセンブラ化
それで出来あがったコンパイラを使って
複雑さを増したCで書かれたCコンパイラのソースをコンパイルして…
それで出来あがったコンパイラを使って…
ってな感じだったような
0746デフォルトの名無しさん
2012/08/03(金) 19:17:53.67プログラミング言語だよ
クソ機械語はプログラミング言語だよ
お前は情報科過程ひとおおり眺めてざっと理解してから質問しろ
時間の無駄だ
0747デフォルトの名無しさん
2012/08/03(金) 19:22:42.31初めからCやっときゃよかったわ。
構造が分からずに手を出すより、構造を知りながら覚える方がおもろいな。
0748デフォルトの名無しさん
2012/08/03(金) 19:34:24.440749デフォルトの名無しさん
2012/08/03(金) 19:36:29.660750デフォルトの名無しさん
2012/08/03(金) 19:36:33.60今でもトラウマあってPerlには手を出してない
0751デフォルトの名無しさん
2012/08/03(金) 20:09:42.58Windowsだと環境入れないとだめでしょ
0752デフォルトの名無しさん
2012/08/03(金) 20:10:06.83そうでもないね
0753デフォルトの名無しさん
2012/08/03(金) 20:16:19.57ハンドアセンブルしてた
実際、微細に渡る変換規則があれば
C言語もハンドアセンブルできる
というよりも
コンパイラの仕事は全て人力で、ノートと鉛筆ででもできる
でも 余りにも時間を喰うから *自動プログラミング* してる
0754デフォルトの名無しさん
2012/08/03(金) 20:21:42.230755デフォルトの名無しさん
2012/08/03(金) 20:21:51.34Osに元から備わってたり?
0756デフォルトの名無しさん
2012/08/03(金) 20:24:17.21これがどういうことか一晩考えろ
夏だから時間あるだろ
0757デフォルトの名無しさん
2012/08/03(金) 20:25:44.78"ken thompson" unix login
でぐぐると面白い話がかかるな。
Unixモンには当然知ってる教養レベルだが。
0758デフォルトの名無しさん
2012/08/03(金) 20:26:08.14それは、一部間違っている。
UnixはCで書き直された。という表現の方が正しいと思う。
0759デフォルトの名無しさん
2012/08/03(金) 20:29:26.50アセンブリの状態からでもアセンブルは必要なんだね
結局コンパイルと一緒かと
0760デフォルトの名無しさん
2012/08/03(金) 20:41:13.530761デフォルトの名無しさん
2012/08/03(金) 20:42:30.51無知供が
0762デフォルトの名無しさん
2012/08/03(金) 20:42:30.640763デフォルトの名無しさん
2012/08/03(金) 20:47:41.05UNIXは商標だから有料商品だよ。
Unix"系"はいろいろあるけど。
0764デフォルトの名無しさん
2012/08/03(金) 21:03:48.19教養がないので一応wikiで見てみたけど、
unicsからunixへの改名のタイミングは書いていないけど、
「the UNIX Programmer's Manualが1971年3月に出版された。」とあって、
「UNIXは1973年にC言語に移植された。」
とあるから、時系列的には
unixでもアセンブリ言語版ではあるんじゃない?
0765デフォルトの名無しさん
2012/08/03(金) 21:05:57.90どんな環境でC言語プログラム作ってたんです?
インターネットもないため開発環境インスコできなかったと思いますが。
0766デフォルトの名無しさん
2012/08/03(金) 21:07:36.090767デフォルトの名無しさん
2012/08/03(金) 21:10:57.27平成生まれですか
0768デフォルトの名無しさん
2012/08/03(金) 21:14:02.570769デフォルトの名無しさん
2012/08/03(金) 21:14:15.17DOS環境でもCコンパイラはいっぱいあったよ。
うちの専門学校では"Turbo C"だった。
あと、"Microsoft C" とか "Quick C"とかあったな。名前しか覚えていないけど。
0770デフォルトの名無しさん
2012/08/03(金) 21:21:17.9716進直打ちでアセンブラ作ってプログラミング
アセンブラコードをバイナリデータで持ってBASICから呼ぶ
これ
0771デフォルトの名無しさん
2012/08/03(金) 21:25:00.19(カプセル化・ちょうどアクアゾーンが流行り始めてた)や
ベジエ曲線とか結構面白いこと教えてもらってたな。
>>770
ベーマガとかで投稿していた方ですか?
0772デフォルトの名無しさん
2012/08/03(金) 21:28:48.55intは16ビットですぐオーバーフローするし
0773デフォルトの名無しさん
2012/08/03(金) 21:29:27.85うん
0774デフォルトの名無しさん
2012/08/03(金) 21:38:05.580775デフォルトの名無しさん
2012/08/03(金) 21:40:10.69Bと8をよく打ち間違えた
0776デフォルトの名無しさん
2012/08/03(金) 21:41:20.850777デフォルトの名無しさん
2012/08/03(金) 21:42:03.190778デフォルトの名無しさん
2012/08/03(金) 21:42:29.420779デフォルトの名無しさん
2012/08/03(金) 21:47:43.31まずコンピュータの仕組みを勉強しなさい。
本屋にいけばその手の本が積んである。
それからOS、プログラミング言語とかより詳しいことを勉強したら。
0780デフォルトの名無しさん
2012/08/03(金) 21:59:47.75自作OSを夏休みの自己課題として作りたいのですがやはり困難を極めるでしょうか?
本当に簡素なOSで良いんです。
0781デフォルトの名無しさん
2012/08/03(金) 22:07:53.14仕組みが分かってないものどうやってつくるの?
プラモなら半完成品があるが
0782デフォルトの名無しさん
2012/08/03(金) 22:11:01.180783デフォルトの名無しさん
2012/08/03(金) 22:17:48.08どっさりハードが絡んでくるから
この板の範囲を遙かに超えるぞ
半田ごては絶対やーよという向きには
VM という手もあるが、それはそれでまた侮れない
0784デフォルトの名無しさん
2012/08/03(金) 22:19:01.800785デフォルトの名無しさん
2012/08/03(金) 22:21:03.36でも、既存ハード用のOSとなるとドライバがたんまり必要になる。
ドライバが要らないハードとなると、ワンボードマイコン辺りになるから
やはりハードの知識が必要に。
0786デフォルトの名無しさん
2012/08/03(金) 22:28:20.02それからソフトの作り方も勉強したら
なんとなくつくって動かしているじゃつかいものにならん
0787デフォルトの名無しさん
2012/08/03(金) 22:37:28.62enum {
StateNormal = 0,
StateAbnormal = 1 << 0,
StateA = 1 << 1,
StateB = 1 << 2,
StateC = 1 << 3
};
typedef int State;
みたいな列挙型があって、この型で表されるstateを調べたいとき、
排他でないA, B, Cはビット積&を取ればいいと思うのですが、
NormalかAbnormalかを調べるときはどうしたらいいのでしょうか?
0788デフォルトの名無しさん
2012/08/03(金) 22:55:43.950789デフォルトの名無しさん
2012/08/03(金) 22:58:19.83仕様次第。
Normalと言う状態は、
state == StateNormalなのかもしれないし、
Normal: (state & StateAbnormal) == StateNormalなのかもしれない。
Abnormalと言う状態は、
state == StateAbnormalなのかもしれないし、
(state & StateAbnormal) == StateAbnormalなのかもしれない。
そういう意味ではAについても
(state & StateA) == StateAなのかどうかは使用を確認しないとなんとも言えない。
0790デフォルトの名無しさん
2012/08/03(金) 23:00:18.13Abnormalも含めてNormal以外がいずれも1でないとき、すなわち0のとき、かつそのときに限りNormalでした。
0791デフォルトの名無しさん
2012/08/03(金) 23:02:47.28state == StateNormalのときにNormalということなんだな。
使い方が巧いかどうかは知らんが、よくある使い方だな。
0792デフォルトの名無しさん
2012/08/03(金) 23:05:31.18ありがとうございます。
まさに
(state & StateAbnormal) == StateNormal
のときNormalだと思っていたのですが
state == StateNormal
のときだけがNormalだったようです。
ちなみに引っ張ってきたのは, Objective-CのUIDocumentStateからです。
0793デフォルトの名無しさん
2012/08/03(金) 23:46:00.65卒論の範囲を遥かに超える
0794デフォルトの名無しさん
2012/08/03(金) 23:55:02.97そういえば20年くらい前に友達が卒論でCP/M80をマルチタスク拡張した
OS作ってたなぁ。
0795デフォルトの名無しさん
2012/08/04(土) 00:00:07.08普通に起きるんでそれを回避するAPIを作るのが面倒くさい
0796デフォルトの名無しさん
2012/08/04(土) 00:08:12.920797デフォルトの名無しさん
2012/08/04(土) 00:28:40.59いえいえ
0798デフォルトの名無しさん
2012/08/04(土) 01:23:08.33コンパイラ自身はどうやってコンパイルしたと思ってんの?
0799デフォルトの名無しさん
2012/08/04(土) 01:25:33.180800デフォルトの名無しさん
2012/08/04(土) 01:27:42.930801デフォルトの名無しさん
2012/08/04(土) 01:32:13.55フロッピーから起動してコマンドを入力させる仕組みを作れるもんなら作ってみろ
もちろんDOSに頼らずにゼロからだ
OSを作るってそういうことだ
お前には無理
0802デフォルトの名無しさん
2012/08/04(土) 01:35:28.280803デフォルトの名無しさん
2012/08/04(土) 01:58:10.060804デフォルトの名無しさん
2012/08/04(土) 02:15:44.480805デフォルトの名無しさん
2012/08/04(土) 04:37:11.480806デフォルトの名無しさん
2012/08/04(土) 06:11:08.260807デフォルトの名無しさん
2012/08/04(土) 06:54:13.250808デフォルトの名無しさん
2012/08/04(土) 12:12:02.91text="12345ABCDE"という文字列の中から『○番目』の文字のみ抽出する方法か関数があれば教えて下さい。
よろしくお願いします。
0809デフォルトの名無しさん
2012/08/04(土) 12:21:44.96ttp://ideone.com/NioEX
0810デフォルトの名無しさん
2012/08/04(土) 12:22:28.200811デフォルトの名無しさん
2012/08/04(土) 12:30:33.38ありがとうございます!!!!!!!!!
こんな単純なことすら思い付かない自分が悔しいですorz
C言語なんてものに向いていないのかもと不安ですが、これからがんばってみます!!
またよろしくおねがいします!
0812デフォルトの名無しさん
2012/08/04(土) 12:41:14.67習うより慣れろ。
バッドで100回素振りしたらそのうちヒットもでるさ。
それと同じ、何回コーディングしたかの違い。
不安なんて関係ないよ、丸写しでもいいから書いて
分からない部分を調べるかヘルプで読むだけの話。
書く、調べる、覚える。 これを繰り返すか繰り返さないかの差でしかない。
0813デフォルトの名無しさん
2012/08/04(土) 14:07:08.300814デフォルトの名無しさん
2012/08/04(土) 14:41:34.72毎日、暗記するくらい手引書読む
何ページに何が書いてあるか覚えたら卒業
2
1で分からない部分を解説してあるサイトやら本を暗記するくらい読む
3.
難しい部分はとりあえず置いて理解出来るコードをひたすら書く
4.
ちょっとだけ難しいコードを混ぜて覚える
以下ループ
そうやってみんな中級者になっていく。
上級者になると言語の仕様書が頭の中に入ってる。
やってることは初心者の頃と同じ。1-4の反復
0815433
2012/08/04(土) 15:10:11.10void Object ()
{
if ( switch_01 == 1 )
{
/* 構造体変数の宣言 */
struct s_int iobject ; // iobject
/* 構造体変数の初期化 */
// iobject.index = "1" ; // char型の文字代入ができない問題
iobject.x = 112 ;
iobject.y = 96 ;
switch_01 = 0 ; // 初期化スイッチを切る(0がOFF) これでもうこの処理には入らない
}
DrawGraph ( iobject.x , iobject.y , SPRITE [ 0 ] , TRUE ) ; // キャラクターを表示する
}
構造体変数の利用についてです。コメント等は読み飛ばして〜〜〜〜!
これで最後のDrawGraph(すいません。不可解な単語は全部ルーチン名です)の引数[iobject.x,iobject.y]が定義されていない、とコンパイラ君に言われるのですが、構造体変数って同じ階層で定義してその階層でしか参照できないのでしょうか?
ifを使わずに同じ階層で処理を実行すると普通にコンパイルを通過できたので…。この辺りのルールがCの教科書には載っていません><;
ちなみに構造体データ型定義は別で行っています。switch_01は変数ですが、if文内の処理が初期化の処理で1度だけ実行したかったのでフラグ的な役割をしているだけです。(これらは別にどうでもよかったf^^;
0816デフォルトの名無しさん
2012/08/04(土) 15:12:37.42>構造体データ型定義は別で行っています。
そのファイルをincludeしなきゃだめだよ
0817デフォルトの名無しさん
2012/08/04(土) 15:13:12.720818デフォルトの名無しさん
2012/08/04(土) 15:14:44.26文字列のソートするプログラム書こうとして文字列の配列を作ろうとしたんだけど
char* plist[]ってことは添字なしだと char** plistになるのかな?
かといって↓のようにすると、その後上手く使えなくなって頭がドーン
char** pplist = {"aaa", "BBB", "ccc", "DDD", "eee", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
なんでこうなるの?
0819デフォルトの名無しさん
2012/08/04(土) 15:16:02.660820デフォルトの名無しさん
2012/08/04(土) 15:17:19.80下手になら使えるのか。 問題ないじゃん
0821433
2012/08/04(土) 15:22:51.45すいません。それは関係ないやつですf^^;ポリポリ
>>817
struct s_int {
char index ;
int x ;
int y ;
} ;
になってます。(ソースファイルの先頭に記述済み)
>>816
同じファイル内に定義済みです。。。
すいません。今ちょっとDrawGraphの直前に
struct s_int iobject ;
を入れたんですけどコンパイルしたら
Run-Time Check Failure #3 - The variable 'iobject' is being used without being initialized.
こんなダイアログが出ました。エラーなのでしょうが内容が分かりませんんんんん
0822デフォルトの名無しさん
2012/08/04(土) 15:26:53.40↓
iobject.index = '1';
0823デフォルトの名無しさん
2012/08/04(土) 15:27:35.800825デフォルトの名無しさん
2012/08/04(土) 15:51:43.11私はちょっとだけ順番違うかな。
1 まず、したい事がある。
2 その事を実現する方法についてのみ調べる。(手引書、参考書、サイト)
3 コードを書いてみる。
4 その後で、手引書、参考書、サイトをじっくり読む。
5 3のコードを改造してみる。
そんで、3-5のループって感じかな。
もちろん、初めに言語の仕様をだいたい知っていることに越した事はないんだけどね。
0826デフォルトの名無しさん
2012/08/04(土) 15:59:58.54俺もそんな感じ
0827デフォルトの名無しさん
2012/08/04(土) 16:11:17.13それだと
モチベは保てる利点があるが
やりたい内容が力量を越えて飛躍しすぎてると頭がオーバーフローし易いので
挫折する可能性もある。
反面、>814だとモチベが持続出来ないのでブン投げる可能もある。
モチベを保つために練習問題をコツコツやらないと厳しい。
コードを書いて前回より出来が良い物に改善、出来る範囲の文献を当たって
β0.01からβ0.02へ進化!手直し手直しを繰り返すのが良いとこ取りかもしれないね。
無理せずにコツコツと手直しが近道かもしれんね。
0828デフォルトの名無しさん
2012/08/04(土) 16:47:35.58今だとgoogleでこの手順もかなり楽になった
検索すると困ってる内容の解決策に簡単にたどり着ける
0829デフォルトの名無しさん
2012/08/04(土) 16:53:12.03今 >>825 へ徐々に移行、6. ありえないポカで自己嫌悪を追加
0830デフォルトの名無しさん
2012/08/04(土) 17:13:03.30ttp://ideone.com/sQD0C
0831デフォルトの名無しさん
2012/08/04(土) 17:13:20.34おれもこの方法だけど
0832デフォルトの名無しさん
2012/08/04(土) 17:26:26.71ttp://ideone.com/eYVNF
0833デフォルトの名無しさん
2012/08/04(土) 17:33:10.73ttp://ideone.com/8Y3XU
0834デフォルトの名無しさん
2012/08/04(土) 17:39:05.12int main(int argc, char *argv[]);
int main(int argc, char **argv);
が等価であるからといって
char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};
が等価にはならない
0835デフォルトの名無しさん
2012/08/04(土) 17:41:37.110836デフォルトの名無しさん
2012/08/04(土) 17:46:29.89二 / ̄\ = 二
 ̄. | ^o^ |  ̄
-‐ \_/ ‐-
0837デフォルトの名無しさん
2012/08/04(土) 18:07:49.79>>833
>>834
ありがとうごじゃいます
char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};
これが等価だって思い付きが大間違いだったんですねorz
0838825
2012/08/04(土) 19:28:06.02ちなみに40代のおぢさんです。
ポンコツだけど。。。。
ただ、1の「したい事がある」は「お仕事でやらないといけなかった」ともいう。
そして、 2の調べるは、そんな人が作ったPGを引き継いだ人が大変なのは分かっていたから、当時はサイトが無かったので必死に参考書を読み漁っていた。
最初の入門書は林春比古さんの新C言語入門シリーズだったかな。(1991年版・今は新しいのが出てるはず)
未だにシニア編は手放せないです。
ビギナー編はどうでも良かったからどっかいっちゃったし、応用編は当時のDOS環境に偏り過ぎていたからね。
オライリーシリーズはポンコツには敷居が高かった。
って感じかな。
0839デフォルトの名無しさん
2012/08/04(土) 19:33:14.450840825
2012/08/04(土) 19:54:02.56正直、他のシリーズの本(C++とかVBとLinuxとか)は知らないんだけどね。
Javaだけはちょっと読んだけど、Java自体、言語と言うより、「如何に用意されたAPIを使いこなすか」で、
しかもJavaのバージョンが上がりまくってAPIが変わりまくりだったので意味をなさなかったね。
持ってるのVer1.3対応版だよ。まったく意味がない。
C言語入門にしては当時(1990年頃)としては分かり易かったと思う。
今なら他にもいっぱいあると思うけど。
0841デフォルトの名無しさん
2012/08/04(土) 21:10:55.96http://www9.plala.or.jp/sgwr-t/index.html
ポイント学習C言語
中級には物足りなすぎるだろうけど
初心者には孫の手みたいに痛し痒しに届きそうな内容じゃない。
この人の本は持ってないけどね・・どうなんでしょ。
あとは猫シリーズのWinプログラムやっとけば初級卒業なんじゃないのかな。
オライリーが鉄板だとは思うがあれ楽勝で読みこなせるなら初心者じゃない気もするw
0842デフォルトの名無しさん
2012/08/04(土) 21:20:59.810843デフォルトの名無しさん
2012/08/04(土) 21:57:11.990844デフォルトの名無しさん
2012/08/04(土) 22:05:21.58少なくとも俺は柴田望洋のほうがわかり易かったよ
0845デフォルトの名無しさん
2012/08/04(土) 22:05:48.790846デフォルトの名無しさん
2012/08/04(土) 22:39:17.970847デフォルトの名無しさん
2012/08/04(土) 22:58:50.44初心者だから自分が間違っているのか本が間違っているのか分からないから困る
0848デフォルトの名無しさん
2012/08/04(土) 23:13:11.490849デフォルトの名無しさん
2012/08/05(日) 00:00:44.450850デフォルトの名無しさん
2012/08/05(日) 00:03:30.81( ´∀`)< オマエモナー
( ) \_____
│ │ │
(__)_)
0852デフォルトの名無しさん
2012/08/05(日) 04:42:27.490853デフォルトの名無しさん
2012/08/05(日) 04:45:35.54何といっても読めば意味が分かることが多い
0854デフォルトの名無しさん
2012/08/05(日) 04:57:34.33手に負えない。
0855デフォルトの名無しさん
2012/08/05(日) 05:05:20.290856685
2012/08/05(日) 05:24:21.33ここに投げてみるとか、codepad/ideone の結果を貼り付けてみるとか。
初学者のはまる点であれば、ここでなんとかなるんじゃない?
0857デフォルトの名無しさん
2012/08/05(日) 05:35:40.54>>643
0858デフォルトの名無しさん
2012/08/05(日) 06:09:52.400859デフォルトの名無しさん
2012/08/05(日) 06:33:42.020860デフォルトの名無しさん
2012/08/05(日) 06:34:54.300861デフォルトの名無しさん
2012/08/05(日) 06:36:02.61初心者によくありがちなコンパイルエラー
0862デフォルトの名無しさん
2012/08/05(日) 07:34:32.47ねぇよ
これは痛いところを突かれましたね。
確かにhttp://codepad.org/mDg8Dx8Pは今でも説明不能。
手元のgcc4 は 0. 000000 を表示することから >>653 + double拡張が妥当ではあるのですが、
それじゃcodepad はどんなことになっているのか?
0864デフォルトの名無しさん
2012/08/05(日) 10:13:57.76つまり>>663の4番目と6番目
0865デフォルトの名無しさん
2012/08/05(日) 10:24:52.9110 % 3 - 1.0 < 4.0 ? 1 : 0;
は
10 % (3 - 1.0) < 4.0 ? 1 : 0;
と解釈され、剰余演算子にdouble型を適用しようとするので
コンパイルエラーになるはずなんだけどなあ
なるほど、いったんスタックをお掃除すると結果がかわるというわけですね。
>663 を codepad にかけてみました。
http://codepad.org/HIVDpg5z
1番目の結果を出すとき、ゴミはいったいなんなんだ?
0867デフォルトの名無しさん
2012/08/05(日) 10:48:07.87単項演算子の-と二項演算子の-との区別がつかないおバカさん?
0868デフォルトの名無しさん
2012/08/05(日) 10:56:01.96とするとちゃんと1.000000と表示される所から見て、整数→倍精度浮動小数点数
への格上げはされてない(当たり前か)
0869デフォルトの名無しさん
2012/08/05(日) 11:22:28.30printf()を連続で呼ぶと前の引数が残るからアクロバティックなコーディングが出来る
やらないけど
0870デフォルトの名無しさん
2012/08/05(日) 11:27:22.05ttp://codepad.org/tqrPGZ55
0871デフォルトの名無しさん
2012/08/05(日) 11:33:13.47これアクロバティックと言わずに「undefined」と言おうよ
>>870
intでdouble型の表示をしようとすると結果はやはり「undefined」だろうな
printf("%f\n", 1); とやってるのと同じだもん
0872デフォルトの名無しさん
2012/08/05(日) 11:51:59.18上書きして走らせるというキチガイ沙汰なプログラムが立派に商用に使われていたな
もちろん後から上書きする関数の大きさは前の関数よりもサイズが小さくないと
次の関数の頭まで消してしまうし、引数も同じにしとかないとコンパイルが出来ない
これも未定義なんだけど、メモリの少ない時代は仕方がなかったんだろうな
0873デフォルトの名無しさん
2012/08/05(日) 11:54:53.01{
char c[8];
double d;
} u;
u.c[0] = 0x66;
u.c[1] = 0x68;
u.c[2] = 0x3c;
u.c[3] = 0x11;
u.c[4] = 0xc4;
u.c[5] = 0x59;
u.c[6] = 0x01;
u.c[7] = 0x40;
printf("%f\n", u.d);
u.c[0] = 0x00;
u.c[1] = 0x00;
u.c[2] = 0x00;
u.c[3] = 0x00;
printf("%f\n", u.d);
0874デフォルトの名無しさん
2012/08/05(日) 11:58:44.74メモリの無い時代、別にオーバーレイは常套手段だったろ。
おおー、thx
このやりかた、デバッグにつかえるかもしれないね
0876デフォルトの名無しさん
2012/08/05(日) 12:36:40.22それぞれに違う処理をさせたい場合、どういった書き方をするんでしょうか
真理値表で言うとこんな感じです
A B C
F F F -> n = ture
F F T -> m = ture
F T F -> l = true
<略>
T T T -> s = true
ifを使って、
if (a == false) && (b == false) && (c == false)
{
...
などと書くのが普通でしょうか。コレだと条件がD, E, ...と増えていくと
収集がつかなくなりそうで不安です。いい方法か、検索に役立つキーワードが
あれば教えて下さい。
0877デフォルトの名無しさん
2012/08/05(日) 12:43:11.670878デフォルトの名無しさん
2012/08/05(日) 13:13:19.180879デフォルトの名無しさん
2012/08/05(日) 13:18:05.020880433
2012/08/05(日) 13:23:49.15832さんありがとうございます!
そのページのソースコードに記述されているstatic(きおくくらす?で合ってるのかな…?)をヒントにコンパイルエラーの謎を解明できました。
具体的な原因としてObjectルーチンを何度も通すプログラムを書いており、
struct s_int iobject ;
という構造体変数宣言を何度も行っている事が原因だったようで、これをヘッダー部分(main()以前)に書く事でコンパイルが正常に通りました。
またひとつ勉強になりました。ありがとうございますm(--)m
0881デフォルトの名無しさん
2012/08/05(日) 13:39:50.960882デフォルトの名無しさん
2012/08/05(日) 13:47:48.09ttp://ideone.com/mZwCB
自動変数というのは自動的に領域の確保と解放をする変数で
初期化(あるいは代入)せずに参照すると値が不定となる
自動変数ではなく静的変数とするにはstaticを付けるかグローバル変数とする
0883デフォルトの名無しさん
2012/08/05(日) 14:56:49.16面倒でも暇を見てヘルプや仕様を読む癖をつけるのが良いと思うよ。
0884デフォルトの名無しさん
2012/08/05(日) 14:57:59.08いろいろやりかたはあるが、条件を表にしておき関数ポインタを持っておくとか
オートマトンで使われるような状態遷移図にも似たような手法が使われる
0885デフォルトの名無しさん
2012/08/05(日) 15:29:21.79#define _TRUE 1
#define _FALSE 0
int fff(void) { printf("%s\n", __func__); }
int fft(void) { printf("%s\n", __func__); }
int ftf(void) { printf("%s\n", __func__); }
int ftt(void) { printf("%s\n", __func__); }
int tff(void) { printf("%s\n", __func__); }
int tft(void) { printf("%s\n", __func__); }
int ttf(void) { printf("%s\n", __func__); }
int ttt(void) { printf("%s\n", __func__); }
int (*tbl[2][2][2])(void) ={
{ { fff, fft }, { ftf, ftt }, },
{ { tff, tft }, { ttf, ttt }, },
};
int main(void){
(*tbl[_FALSE][_FALSE][_FALSE])();
(*tbl[_FALSE][_FALSE][_TRUE])();
(*tbl[_FALSE][_TRUE][_FALSE])();
(*tbl[_FALSE][_TRUE][_TRUE])();
(*tbl[_TRUE][_FALSE][_FALSE])();
(*tbl[_TRUE][_FALSE][_TRUE])();
(*tbl[_TRUE][_TRUE][_FALSE])();
(*tbl[_TRUE][_TRUE][_TRUE])();
return 0;
}
0886デフォルトの名無しさん
2012/08/05(日) 15:29:52.05$ ./a.exe
fff
fft
ftf
ftt
tff
tft
ttf
ttt
0887433
2012/08/05(日) 17:00:58.51自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか?
初期化しないままに参照するのは結果的にエラーを吐くのは分かったのですが、
初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう
やはりCの仕様なんでしょうか…
0888デフォルトの名無しさん
2012/08/05(日) 17:11:38.250889デフォルトの名無しさん
2012/08/05(日) 17:13:28.310890デフォルトの名無しさん
2012/08/05(日) 17:54:40.51ttp://ideone.com/xmVR8
>自動変数と静的変数というのは一般的に言われる「変数」を噛み砕いたものという事でしょうか?
変数には大雑把にいって自動変数と静的変数がある
>初期化したものをその後に参照しようとしても参照できない場合があるのはなぜなのでしょう
初期化したつもりで自動変数を初期化してなかったので
「変数'iobject'が初期化されてないのに使われようとした」というエラー(警告?)になったのだと思われ
Run-Time Check Failure #3 - The variable 'iobject' is being used without being initialized.
0891433
2012/08/05(日) 18:16:14.23まだC言語は半月くらいの経験しかない身ではしたない部分があるにも関わらず多くアドバイスを頂き感謝し尽せないです。。。
>>890
初期化した場所が悪かったのか、初期化した後変数が別の変数に変わってしまったのか分かりませんがエラーの内容からすれば変数の初期化をする場所にルールがあるんじゃないか、とちょっと気づいてきました…(´・ω・`)
>>889
ブロックスコープという存在を知らなかった…orz
しかも私が今併用しているC言語入門書には書いていない件(tyow
>>888
ポインタですね^^
後々解析してみまぁす。ありがとうございます〜
皆様、貴重なご教示ありがとうございました。
0892デフォルトの名無しさん
2012/08/05(日) 18:32:40.71http://www9.plala.or.jp/sgwr-t/index.html
0893876
2012/08/05(日) 18:36:50.41とりあえず今回は3条件T/Fで設計してしまったので、
ビットフラグで行こうと思います。
検索したらUMLとか状態遷移とかを解説しているページが
多く見られ、大変参考になりました。ありがとうございました。
0894デフォルトの名無しさん
2012/08/05(日) 18:45:27.84<=====の行がうまくいかないです。アドバイスお願いします。
int *po,ban,i;
po=&ban;
for(i=0;i<5;i++){
*(po+i)=i; /*<=====*/
}
0895デフォルトの名無しさん
2012/08/05(日) 18:51:18.640896デフォルトの名無しさん
2012/08/05(日) 18:56:35.63ttp://ideone.com/g4bsT
0897デフォルトの名無しさん
2012/08/05(日) 18:56:57.06<=====の行がうまくいかないです。アドバイスお願いします。
int *po,ban,i;
po=&ban;
for(i=0;i<5;i++){
*(po+i)<=====i;
}
0900デフォルトの名無しさん
2012/08/05(日) 19:29:40.530901デフォルトの名無しさん
2012/08/05(日) 19:30:21.98ふぉいふぉいFOI!!!
カネ返せFOI!!!
カネ返せPOI!!!
0902デフォルトの名無しさん
2012/08/05(日) 19:34:03.62半自動変数
手動変数
0903デフォルトの名無しさん
2012/08/05(日) 19:41:31.07答えはそこにある。
0904デフォルトの名無しさん
2012/08/05(日) 19:46:12.93固定変数
変動定数
定数
0905デフォルトの名無しさん
2012/08/05(日) 21:09:56.680906デフォルトの名無しさん
2012/08/05(日) 23:53:22.62専門知識を教えるのは億劫なんかね。
0907デフォルトの名無しさん
2012/08/05(日) 23:56:26.740908デフォルトの名無しさん
2012/08/06(月) 00:00:50.30ゴミは黙れ
0909デフォルトの名無しさん
2012/08/06(月) 00:06:41.76茶化すなよ
0910デフォルトの名無しさん
2012/08/06(月) 00:53:54.49C言語は低レベルなので処理系聞かないと規格票の範囲でしか答えられないからです
0911デフォルトの名無しさん
2012/08/06(月) 01:05:43.22失せろゴミ
0912デフォルトの名無しさん
2012/08/06(月) 01:29:45.60いや、お前がゴミだから。
0913デフォルトの名無しさん
2012/08/06(月) 01:50:31.120914デフォルトの名無しさん
2012/08/06(月) 01:51:54.790915デフォルトの名無しさん
2012/08/06(月) 01:57:04.140916デフォルトの名無しさん
2012/08/06(月) 02:08:19.48共有しないと意味ねーだろ
0917デフォルトの名無しさん
2012/08/06(月) 02:10:22.410918デフォルトの名無しさん
2012/08/06(月) 02:14:15.34一方的にもらうだけの乞食が
0919デフォルトの名無しさん
2012/08/06(月) 02:21:13.35遠慮せずにそちらの世界へ。
0920デフォルトの名無しさん
2012/08/06(月) 02:22:09.03そんなひまがあったら働け
0921デフォルトの名無しさん
2012/08/06(月) 02:30:41.89「処理系」の意味がわかってないような
0922デフォルトの名無しさん
2012/08/06(月) 04:52:17.60お前が一番分かってない
0923デフォルトの名無しさん
2012/08/06(月) 04:54:56.41ほう。
どうわかってないのか、正しくはどうなのか説明してみ。
0924デフォルトの名無しさん
2012/08/06(月) 04:56:47.56人に教えてもらう態度ではないな
0925デフォルトの名無しさん
2012/08/06(月) 05:00:05.49失せろゴミ
0926デフォルトの名無しさん
2012/08/06(月) 05:02:32.65お前が処理系を何だと思ってるか説明するのが先だ
ゴミしか言えないのかよ
0927デフォルトの名無しさん
2012/08/06(月) 05:08:28.84わかってないのに判断したのかよ
0928デフォルトの名無しさん
2012/08/06(月) 05:09:47.450929デフォルトの名無しさん
2012/08/06(月) 05:10:32.270930デフォルトの名無しさん
2012/08/06(月) 05:15:13.500931デフォルトの名無しさん
2012/08/06(月) 05:18:30.810932デフォルトの名無しさん
2012/08/06(月) 05:19:51.180933デフォルトの名無しさん
2012/08/06(月) 05:20:03.080934デフォルトの名無しさん
2012/08/06(月) 05:27:39.39https://www.google.co.jp/search?q=%E5%87%A6%E7%90%86%E7%B3%BB
0935デフォルトの名無しさん
2012/08/06(月) 05:36:14.40>>919だけが「処理系」の意味を知らないだけで
他の人は全員「処理系」の意味を理解して、同じ意味で使っている。
0936デフォルトの名無しさん
2012/08/06(月) 06:56:49.370937デフォルトの名無しさん
2012/08/06(月) 07:01:02.280938デフォルトの名無しさん
2012/08/06(月) 07:26:09.480939デフォルトの名無しさん
2012/08/06(月) 07:34:52.320940デフォルトの名無しさん
2012/08/06(月) 07:40:55.440941デフォルトの名無しさん
2012/08/06(月) 07:57:40.080942デフォルトの名無しさん
2012/08/06(月) 08:00:57.450943デフォルトの名無しさん
2012/08/06(月) 08:04:17.840944デフォルトの名無しさん
2012/08/06(月) 08:06:47.660945デフォルトの名無しさん
2012/08/06(月) 08:11:40.73int main(void)
{
int i = 2;
printf("%d\n", ++i*(++i) );
return 0;
}
/*
C:\work>gcc -Wall -o ppi ppi.c
ppi.c: In function `main':
ppi.c:5: warning: operation on `i' may be undefined
C:\work>ppi
16
C:\work>dmc ppi.c
link ppi,,,user32+kernel32/noi;
C:\work>ppi
12
*/
0946デフォルトの名無しさん
2012/08/06(月) 08:12:19.520947デフォルトの名無しさん
2012/08/06(月) 08:19:45.88#include <stdio.h>
int main(void) {
int i = 2, j;
j = ++i;
printf("%d\n", j*(j) );
return 0;
}
0948デフォルトの名無しさん
2012/08/06(月) 08:43:31.10アホは書き込むな。
0949デフォルトの名無しさん
2012/08/06(月) 08:47:57.140950デフォルトの名無しさん
2012/08/06(月) 09:22:10.780951デフォルトの名無しさん
2012/08/06(月) 09:34:44.570952デフォルトの名無しさん
2012/08/06(月) 18:45:09.030953デフォルトの名無しさん
2012/08/06(月) 18:47:03.830954デフォルトの名無しさん
2012/08/06(月) 18:52:36.050955デフォルトの名無しさん
2012/08/06(月) 20:01:53.00>Qがコテを隠して朝からファビョって
http://toro.2ch.net/test/read.cgi/tech/1342966104/159,162,164,166,170,173,175,182,184,186,190,196,202,204,206,213,215,218
0956デフォルトの名無しさん
2012/08/06(月) 20:37:38.060958デフォルトの名無しさん
2012/08/06(月) 20:54:35.350959デフォルトの名無しさん
2012/08/06(月) 21:17:05.940960デフォルトの名無しさん
2012/08/06(月) 23:02:13.130961デフォルトの名無しさん
2012/08/06(月) 23:05:40.93あるよ
0962デフォルトの名無しさん
2012/08/06(月) 23:08:20.53ないよ
0963デフォルトの名無しさん
2012/08/06(月) 23:11:35.22処理上の違いの場合、どちらかにしかないエラーケースはどんなのがありますか?
0964デフォルトの名無しさん
2012/08/06(月) 23:22:51.71!NULLは代入で使う(滅多に見ないが)
!=NULLは条件文で使う
0965デフォルトの名無しさん
2012/08/06(月) 23:26:16.94if(!hoge)はif(hoge != NULL)と等価かどうかが知りたかったんですが、認識からして混乱していたようです……
0966デフォルトの名無しさん
2012/08/06(月) 23:32:32.79投下かどうかくらいは自力で調べられんジャネーノこれ
0967デフォルトの名無しさん
2012/08/06(月) 23:41:36.27if (!hoge) hogeが0なら真、0以外なら偽
if (hoge != NULL) hogeが0なら偽、0以外なら真
0968デフォルトの名無しさん
2012/08/06(月) 23:41:54.910969デフォルトの名無しさん
2012/08/06(月) 23:52:54.35https://www.google.co.jp/search?q=c+faq+NULL
0970デフォルトの名無しさん
2012/08/06(月) 23:55:55.610971デフォルトの名無しさん
2012/08/07(火) 00:05:14.140972デフォルトの名無しさん
2012/08/07(火) 00:06:50.15if (!hoge)はぱっと見分かりづらい
0973デフォルトの名無しさん
2012/08/07(火) 00:09:08.320974デフォルトの名無しさん
2012/08/07(火) 00:09:42.870975デフォルトの名無しさん
2012/08/07(火) 00:11:16.480976デフォルトの名無しさん
2012/08/07(火) 00:17:28.700977デフォルトの名無しさん
2012/08/07(火) 00:18:57.67\0 も NULL も 0 と書いて無問題。
お約束でごめんね。
0979デフォルトの名無しさん
2012/08/07(火) 00:33:34.59ファイッ!!
後者はありえない。
if (hoge != 0) と書かない理由をいってみろ。
真を返すのに
return !0
と書く人がいたとすれば、その原理主義的思考には深く共感する。
あまりにも紛らわしいので私はしないが。
0982デフォルトの名無しさん
2012/08/07(火) 00:44:39.66まぁ、排他的な意見しか言えないQに言っても無駄だろうけど。
好きな方使えばええやん
0983デフォルトの名無しさん
2012/08/07(火) 00:47:25.26理由があればね。でも3バイト使ってひとつもわかりやすくなっていない、確たる理由はない、惰性としかいいようがない。
0985デフォルトの名無しさん
2012/08/07(火) 00:49:51.06return FALSE;
return NULL;
if(hoge != NULL)
while(TRUE)
Java出身の俺はこう書く
0986デフォルトの名無しさん
2012/08/07(火) 00:51:15.53共感する。
0988デフォルトの名無しさん
2012/08/07(火) 00:52:07.41改めるほどの価値も無い
0989デフォルトの名無しさん
2012/08/07(火) 00:53:00.85わかりましたっ!
0990デフォルトの名無しさん
2012/08/07(火) 00:54:06.590991デフォルトの名無しさん
2012/08/07(火) 00:56:52.99http://toro.2ch.net/test/read.cgi/tech/1344268569/
どっちかというと新興宗教vs伝統仏教。
新興宗教側(NULL否定派)に分はない。
0993デフォルトの名無しさん
2012/08/07(火) 01:05:12.990994デフォルトの名無しさん
2012/08/07(火) 01:20:51.88何でも #define すればいいというものではない。
http://developers.slashdot.jp/story/12/07/29/0728218/
\0 や NULL は 0 と書いて無問題。
0996デフォルトの名無しさん
2012/08/07(火) 01:28:31.75NULLの否定で式を書くって事?
それともNULLの使用を否定するって事?
0997デフォルトの名無しさん
2012/08/07(火) 01:29:03.690998デフォルトの名無しさん
2012/08/07(火) 01:29:19.160999デフォルトの名無しさん
2012/08/07(火) 01:30:09.091000デフォルトの名無しさん
2012/08/07(火) 01:30:28.1810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。