[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 07/05 16:55 / Filesize : 216 KB / Number-of Response : 952
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 104



1 名前:デフォルトの名無しさん [2012/07/15(日) 10:28:33.18 ]
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 103
toro.2ch.net/test/read.cgi/tech/1341059858/
★過去スレ
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代目
toro.2ch.net/test/read.cgi/tech/1339338438/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
codepad.org/
ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

768 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:14:02.57 ]
PC-98で5インチFD版のQuickCをですね

769 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:14:15.17 ]
>>765
DOS環境でもCコンパイラはいっぱいあったよ。
うちの専門学校では"Turbo C"だった。
あと、"Microsoft C" とか "Quick C"とかあったな。名前しか覚えていないけど。

770 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:21:17.97 ]
gnuが幅効かせる前のホビープログラマの無料環境は
16進直打ちでアセンブラ作ってプログラミング
アセンブラコードをバイナリデータで持ってBASICから呼ぶ

これ

771 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:25:00.19 ]
いま思えば、20年前の専門学校時代にC言語でオブジェクト指向的な事
(カプセル化・ちょうどアクアゾーンが流行り始めてた)や
ベジエ曲線とか結構面白いこと教えてもらってたな。

>>770
ベーマガとかで投稿していた方ですか?

772 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:28:48.55 ]
8086のセグメントとかFARポインタで挫折したな
intは16ビットですぐオーバーフローするし

773 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:29:27.85 ]
>>771
うん

774 名前:デフォルトの名無しさん [2012/08/03(金) 21:38:05.58 ]
BASIC の DATA 文がある意味アセンブラだったな

775 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:40:10.69 ]
マシン語ダンプリストとチェックサム
Bと8をよく打ち間違えた

776 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:41:20.85 ]
無期懲役食らった星島貴徳ってプログラマーとしてはかなり優秀だったと思います?




777 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:42:03.19 ]
一応、ここは、C言語スレだったりします。。。

778 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:42:29.42 ]
私もついに、中途半端な回顧厨が若造の戯言言っているようにしか見えなくなってしまったか。

779 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:47:43.31 ]
>>729
まずコンピュータの仕組みを勉強しなさい。
本屋にいけばその手の本が積んである。
それからOS、プログラミング言語とかより詳しいことを勉強したら。

780 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 21:59:47.75 ]
>>779
自作OSを夏休みの自己課題として作りたいのですがやはり困難を極めるでしょうか?
本当に簡素なOSで良いんです。

781 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:07:53.14 ]
>>780
仕組みが分かってないものどうやってつくるの?

プラモなら半完成品があるが

782 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:11:01.18 ]
だったらOSの作り方とか書いてある本読めよ

783 名前:デフォルトの名無しさん [2012/08/03(金) 22:17:48.08 ]
>>780
どっさりハードが絡んでくるから
この板の範囲を遙かに超えるぞ

半田ごては絶対やーよという向きには
VM という手もあるが、それはそれでまた侮れない

784 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:19:01.80 ]
OSて組み込み?

785 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:21:03.36 ]
OS作るだけならハードは要らない。
でも、既存ハード用のOSとなるとドライバがたんまり必要になる。
ドライバが要らないハードとなると、ワンボードマイコン辺りになるから
やはりハードの知識が必要に。

786 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:28:20.02 ]
>>780
それからソフトの作り方も勉強したら
なんとなくつくって動かしているじゃつかいものにならん



787 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:37:28.62 ]
すみません
enum {
StateNormal = 0,
StateAbnormal = 1 << 0,
StateA = 1 << 1,
StateB = 1 << 2,
StateC = 1 << 3
};
typedef int State;
みたいな列挙型があって、この型で表されるstateを調べたいとき、
排他でないA, B, Cはビット積&を取ればいいと思うのですが、
NormalかAbnormalかを調べるときはどうしたらいいのでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:55:43.95 ]
列挙型の使い方がまちがっとる。

789 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 22:58:19.83 ]
>>787
仕様次第。
Normalと言う状態は、
state == StateNormalなのかもしれないし、
Normal: (state & StateAbnormal) == StateNormalなのかもしれない。

Abnormalと言う状態は、
state == StateAbnormalなのかもしれないし、
(state & StateAbnormal) == StateAbnormalなのかもしれない。

そういう意味ではAについても
(state & StateA) == StateAなのかどうかは使用を確認しないとなんとも言えない。


790 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:00:18.13 ]
すみません。A, B, Cを無視してNormalかAbnormalかを調べること自体がおかしいという話でした。
Abnormalも含めてNormal以外がいずれも1でないとき、すなわち0のとき、かつそのときに限りNormalでした。

791 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:02:47.28 ]
言いたいことはよく判らんが、
state == StateNormalのときにNormalということなんだな。
使い方が巧いかどうかは知らんが、よくある使い方だな。

792 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:05:31.18 ]
>>789
ありがとうございます。
まさに
(state & StateAbnormal) == StateNormal
のときNormalだと思っていたのですが
state == StateNormal
のときだけがNormalだったようです。
ちなみに引っ張ってきたのは, Objective-CのUIDocumentStateからです。

793 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:46:00.65 ]
OSを作るだと?マルチタスクは超難しいぞ
卒論の範囲を遥かに超える

794 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:55:02.97 ]
別にシングルタスクでいいじゃん。
そういえば20年くらい前に友達が卒論でCP/M80をマルチタスク拡張した
OS作ってたなぁ。

795 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:00:07.08 ]
何も考えずに排他制御すればとりあえず出来るけどデッドロック、スタベーション、レース状態は
普通に起きるんでそれを回避するAPIを作るのが面倒くさい

796 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:08:12.92 ]
別にOS自体はシングルタスクでもいいじゃん。



797 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:28:40.59 ]
>>792
いえいえ

798 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:23:08.33 ]
>>741
コンパイラ自身はどうやってコンパイルしたと思ってんの?

799 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:25:33.18 ]
最初のコンパイラは神が与えた

800 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:27:42.93 ]
コンパイラなんて使わずハンドアッセンブルしたに決まってんじゃん

801 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:32:13.55 ]
>>780
フロッピーから起動してコマンドを入力させる仕組みを作れるもんなら作ってみろ
もちろんDOSに頼らずにゼロからだ
OSを作るってそういうことだ
お前には無理

802 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:35:28.28 ]
コンパイラコンパイラも知らないガキンチョか

803 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:58:10.06 ]
あ〜あ…

804 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 02:15:44.48 ]
ゆとりの俺からすると昔の人は変態的

805 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 04:37:11.48 ]
変態に支えられて経済発展したんだな

806 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 06:11:08.26 ]
イタヅラし放題〜♪



807 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 06:54:13.25 ]
板ずらし放題


808 名前:デフォルトの名無しさん [2012/08/04(土) 12:12:02.91 ]
すみませんC言語は先週から始めた超初心者です
text="12345ABCDE"という文字列の中から『○番目』の文字のみ抽出する方法か関数があれば教えて下さい。
よろしくお願いします。

809 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 12:21:44.96 ]
>>808
ttp://ideone.com/NioEX

810 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 12:22:28.20 ]
text[i]

811 名前:デフォルトの名無しさん [2012/08/04(土) 12:30:33.38 ]
>>809-810

ありがとうございます!!!!!!!!!
こんな単純なことすら思い付かない自分が悔しいですorz
C言語なんてものに向いていないのかもと不安ですが、これからがんばってみます!!
またよろしくおねがいします!

812 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 12:41:14.67 ]
最初はみんなそんなもんだ。
習うより慣れろ。
バッドで100回素振りしたらそのうちヒットもでるさ。
それと同じ、何回コーディングしたかの違い。
不安なんて関係ないよ、丸写しでもいいから書いて
分からない部分を調べるかヘルプで読むだけの話。

書く、調べる、覚える。 これを繰り返すか繰り返さないかの差でしかない。

813 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 14:07:08.30 ]
ほっこりした。

814 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 14:41:34.72 ]
1
毎日、暗記するくらい手引書読む
何ページに何が書いてあるか覚えたら卒業
2
1で分からない部分を解説してあるサイトやら本を暗記するくらい読む
3.
難しい部分はとりあえず置いて理解出来るコードをひたすら書く
4.
ちょっとだけ難しいコードを混ぜて覚える

以下ループ
そうやってみんな中級者になっていく。

上級者になると言語の仕様書が頭の中に入ってる。
やってることは初心者の頃と同じ。1-4の反復

815 名前:433 mailto:sage [2012/08/04(土) 15:10:11.10 ]
みなさんのお力をお借りさせてください。

void 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^^;

816 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:12:37.42 ]
>>815
>構造体データ型定義は別で行っています。
そのファイルをincludeしなきゃだめだよ



817 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:13:12.72 ]
s_intの定義はどうなってる?

818 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:14:44.26 ]
char* plist[] = {"aaa", "BBB", "ccc", "DDD", "eee", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

文字列のソートするプログラム書こうとして文字列の配列を作ろうとしたんだけど
char* plist[]ってことは添字なしだと char** plistになるのかな?

かといって↓のようにすると、その後上手く使えなくなって頭がドーン
char** pplist = {"aaa", "BBB", "ccc", "DDD", "eee", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

なんでこうなるの?

819 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:16:02.66 ]
// iobject.index = "1" ; // char型の文字代入ができない問題

820 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:17:19.80 ]
>その後上手く使えなくなって
下手になら使えるのか。 問題ないじゃん


821 名前:433 mailto:sage [2012/08/04(土) 15:22:51.45 ]
>>819
すいません。それは関係ないやつです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.

こんなダイアログが出ました。エラーなのでしょうが内容が分かりませんんんんん

822 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:26:53.40 ]
iobject.index = "1";

iobject.index = '1';

823 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:27:35.80 ]
文字と文字列の違いもわかってないのか

824 名前:433 mailto:sage [2012/08/04(土) 15:34:26.13 ]
>>822
ぎゃああああああ
ってな感じです。。。凡ミスワラタw

アリガトゴザイマス(´・ω・`)

825 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:51:43.11 ]
>>814
私はちょっとだけ順番違うかな。

1 まず、したい事がある。
2 その事を実現する方法についてのみ調べる。(手引書、参考書、サイト)
3 コードを書いてみる。
4 その後で、手引書、参考書、サイトをじっくり読む。
5 3のコードを改造してみる。

そんで、3-5のループって感じかな。

もちろん、初めに言語の仕様をだいたい知っていることに越した事はないんだけどね。

826 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 15:59:58.54 ]
>>825
俺もそんな感じ



827 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:11:17.13 ]
>>825
それだと
モチベは保てる利点があるが
やりたい内容が力量を越えて飛躍しすぎてると頭がオーバーフローし易いので
挫折する可能性もある。

反面、>814だとモチベが持続出来ないのでブン投げる可能もある。
モチベを保つために練習問題をコツコツやらないと厳しい。

コードを書いて前回より出来が良い物に改善、出来る範囲の文献を当たって
β0.01からβ0.02へ進化!手直し手直しを繰り返すのが良いとこ取りかもしれないね。
無理せずにコツコツと手直しが近道かもしれんね。

828 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:47:35.58 ]
>>825
今だとgoogleでこの手順もかなり楽になった
検索すると困ってる内容の解決策に簡単にたどり着ける

829 名前:デフォルトの名無しさん [2012/08/04(土) 16:53:12.03 ]
若い頃はモロ >>814 つーか 4. で無謀なチャレンジを楽しんでいた
>>825 へ徐々に移行、6. ありえないポカで自己嫌悪を追加

830 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:13:03.30 ]
>>818
ttp://ideone.com/sQD0C

831 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:13:20.34 ]
>>825の人気にshit
おれもこの方法だけど

832 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:26:26.71 ]
>>815
ttp://ideone.com/eYVNF

833 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:33:10.73 ]
>>818
ttp://ideone.com/8Y3XU

834 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:39:05.12 ]
つまり

int main(int argc, char *argv[]);
int main(int argc, char **argv);

が等価であるからといって

char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};

が等価にはならない

835 名前:デフォルトの名無しさん [2012/08/04(土) 17:41:37.11 ]
等価であるべきだとすごい剣幕で主張してるアホが昔いた

836 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:46:29.89 ]
 __           た わ し で す           --
     二          / ̄\           = 二
   ̄.            | ^o^ |                 ̄
    -‐           \_/                ‐-



837 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 18:07:49.79 ]
>>830
>>833
>>834
ありがとうごじゃいます

char *plist[] = {"foo", "bar"};
char **plist = {"foo", "bar"};

これが等価だって思い付きが大間違いだったんですねorz

838 名前:825 mailto:sage [2012/08/04(土) 19:28:06.02 ]
知らないうちに結構レスがついている。

ちなみに40代のおぢさんです。
ポンコツだけど。。。。

ただ、1の「したい事がある」は「お仕事でやらないといけなかった」ともいう。
そして、 2の調べるは、そんな人が作ったPGを引き継いだ人が大変なのは分かっていたから、当時はサイトが無かったので必死に参考書を読み漁っていた。

最初の入門書は林春比古さんの新C言語入門シリーズだったかな。(1991年版・今は新しいのが出てるはず)
未だにシニア編は手放せないです。
ビギナー編はどうでも良かったからどっかいっちゃったし、応用編は当時のDOS環境に偏り過ぎていたからね。

オライリーシリーズはポンコツには敷居が高かった。

って感じかな。

839 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 19:33:14.45 ]
林春比古の本に手をだしてはいけませんキリッ

840 名前:825 mailto:sage [2012/08/04(土) 19:54:02.56 ]
>>839
正直、他のシリーズの本(C++とかVBとLinuxとか)は知らないんだけどね。
Javaだけはちょっと読んだけど、Java自体、言語と言うより、「如何に用意されたAPIを使いこなすか」で、
しかもJavaのバージョンが上がりまくってAPIが変わりまくりだったので意味をなさなかったね。
持ってるのVer1.3対応版だよ。まったく意味がない。

C言語入門にしては当時(1990年頃)としては分かり易かったと思う。
今なら他にもいっぱいあると思うけど。

841 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 21:10:55.96 ]
初心者ならここじゃないの。副読本の感覚で
www9.plala.or.jp/sgwr-t/index.html
ポイント学習C言語

中級には物足りなすぎるだろうけど
初心者には孫の手みたいに痛し痒しに届きそうな内容じゃない。

この人の本は持ってないけどね・・どうなんでしょ。

あとは猫シリーズのWinプログラムやっとけば初級卒業なんじゃないのかな。

オライリーが鉄板だとは思うがあれ楽勝で読みこなせるなら初心者じゃない気もするw

842 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 21:20:59.81 ]
写経して即デバッガで追うのは楽なんだけど、時間が無い人向けだな。

843 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 21:57:11.99 ]
猫わかもいいんだけどちょっと古臭いのがね

844 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 22:05:21.58 ]
あれは猫ならわかるのかもしれんが、人間だとわからんのでは?
少なくとも俺は柴田望洋のほうがわかり易かったよ

845 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 22:05:48.79 ]
うん

846 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 22:39:17.97 ]
独習Cだろ最強は



847 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 22:58:50.44 ]
図書館で借りた入門書に誤字があり、その箇所で悩みまくり頭が沸騰するかと思った。
初心者だから自分が間違っているのか本が間違っているのか分からないから困る

848 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 23:13:11.49 ]
困るね

849 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 00:00:44.45 ]
読んで覚えるだけの勉強しかしないバカにありがちだね

850 名前:デフォルトの名無しさん [2012/08/05(日) 00:03:30.81 ]
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< オマエモナー
  (     )  \_____
  │ │ │
  (__)_)

851 名前:685 mailto:sage [2012/08/05(日) 01:58:36.19 ]
>>847
自分でうごかしてみるんだ。今は環境は簡単に手に入る。

852 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 04:42:27.49 ]
コンパイル環境あったところで、誤字が理由のエラーに悩みまくることはかわらないけどな

853 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 04:45:35.54 ]
昔よりはエラーメッセージが親切になった

何といっても読めば意味が分かることが多い

854 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 04:57:34.33 ]
開発環境やバージョンの違いで動かないこともあったりするから
手に負えない。

855 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 05:05:20.29 ]
初心者がエラーメッセージをちゃんと読んで理解するかよw

856 名前:685 mailto:sage [2012/08/05(日) 05:24:21.33 ]
>>855
ここに投げてみるとか、codepad/ideone の結果を貼り付けてみるとか。
初学者のはまる点であれば、ここでなんとかなるんじゃない?



857 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 05:35:40.54 ]
>>639
>>643

858 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 06:09:52.40 ]
しかし初心者ほど「エラーが出ます」としか言わないのであった

859 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 06:33:42.02 ]
C++のテンプレートとかエラーメッセージ自体が意味不明だったりするけど

860 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 06:34:54.30 ]
初心者の独学の話をしてるんじゃないの?

861 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 06:36:02.61 ]
ttp://ideone.com/XY4SB
初心者によくありがちなコンパイルエラー

862 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 07:34:32.47 ]
>>861
ねぇよ


863 名前: ◆QZaw55cn4c mailto:sage [2012/08/05(日) 09:45:29.15 ]
>>857
これは痛いところを突かれましたね。

確かにcodepad.org/mDg8Dx8Pは今でも説明不能。
手元のgcc4 は 0. 000000 を表示することから >>653 + double拡張が妥当ではあるのですが、
それじゃcodepad はどんなことになっているのか?

864 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 10:13:57.76 ]
%fで8バイト必要なのに4バイトしか積んでないから
つまり>>663の4番目と6番目

865 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 10:24:52.91 ]
% よりも - の方が優先順位が高いので

10 % 3 - 1.0 < 4.0 ? 1 : 0;



10 % (3 - 1.0) < 4.0 ? 1 : 0;

と解釈され、剰余演算子にdouble型を適用しようとするので
コンパイルエラーになるはずなんだけどなあ

866 名前: ◆QZaw55cn4c mailto:sage [2012/08/05(日) 10:41:02.47 ]
>>864
なるほど、いったんスタックをお掃除すると結果がかわるというわけですね。
>663 を codepad にかけてみました。
codepad.org/HIVDpg5z

1番目の結果を出すとき、ゴミはいったいなんなんだ?



867 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 10:48:07.87 ]
>% よりも - の方が優先順位が高いので
単項演算子の-と二項演算子の-との区別がつかないおバカさん?

868 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 10:56:01.96 ]
printf("%f\n", 10 % 3 - 1.0 < 4.0 ? 1.0 : 0.0);

とするとちゃんと1.000000と表示される所から見て、整数→倍精度浮動小数点数
への格上げはされてない(当たり前か)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<216KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef