C言語なら俺に聞け(入門編)Part 105at TECH
C言語なら俺に聞け(入門編)Part 105 - 暇つぶし2ch1:デフォルトの名無しさん
12/08/07 00:56:09.73
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 104
スレリンク(tech板)
★過去スレ
URLリンク(makimo.to:8000)
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 159代目
スレリンク(tech板)
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
URLリンク(codepad.org)
URLリンク(ideone.com)
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

2:デフォルトの名無しさん
12/08/07 01:31:24.25
NG推奨

◆QZaw55cn4c

3:デフォルトの名無しさん
12/08/07 02:30:01.00
\0 や NULL は 0 と書いて無問題

4:デフォルトの名無しさん
12/08/07 02:35:25.28
それで?

5:デフォルトの名無しさん
12/08/07 03:07:33.56
>>3
ソースコードは、改行などせず余分な空白など入れず、ひたすら全部一行に書いて無問題

6:デフォルトの名無しさん
12/08/07 03:13:22.54
>>5
知らないのか?
C++ ではむしろ 0 と書くのが普通
また
char *p;
for (p = s; *p; p++)

while(*s++=*t++)
も同じ理屈だ
NULL や \0 は書くと余計にわかりにくく思考が乱れバグの元だ

7:デフォルトの名無しさん
12/08/07 03:16:05.01
かなり古い文献のプログラムなのですが、

funcA(data)
short *data;
{
char max;
  
  max = *data;


funcB(number)
char *number;
{
short no;
  
  *number = no;
  

short data;
unsigned short cnt;

cnt = (long)data;
sprintf(data, "%5ld",(long)cnt);

このような表現がありました。
①②はchar型にshort型を代入(?)してるみたいだし、③はわざわざlong型にキャストしてshort型に代入してる?
試しにVisual C++6でビルドしてみたところ、エラーにはならないが、ワーニング(データが失われる・・・)となりました。これは、
1.この文献の記述がそもそも間違っている
2.意図的に大きい型を小さい型に代入しようとしている(warningは気にしていない?)
3.昔のC言語の仕様と今の仕様が違う(昔はエラーにならなかった?)
4.VCでコンパイルしたのがダメ
どれなのでしょうか?

8:デフォルトの名無しさん
12/08/07 03:18:29.82
>>6
頭悪いな


9:デフォルトの名無しさん
12/08/07 03:21:35.37
>>6
最近C++の本を読んで感動した初心者さん?

10:デフォルトの名無しさん
12/08/07 03:27:00.67
>>7
1. その可能性は否定できない。
2. そもそも方を短縮することに警告が出るのは最近の話。
3. 今もエラーにはならない。
4. 意味不明。

意図したコードが判らんから判らんが、なんとなく、16ビット時代のコードの気がする。
つーか、intをshortと書く癖でもあるのか。
いずれにしても、(3)の(long)はよく判らん。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch