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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C言語の*入門者*向け解説スレッドです。

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

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/
2デフォルトの名無しさん:2012/02/14(火) 18:52:55.68
LEDの点灯プログラムの一部なんですけど
0x01 ^ 0xff とはどういう意味なのでしょうか?
3デフォルトの名無しさん:2012/02/14(火) 18:54:18.84
そのくらい自分で調べろゴミ。
4デフォルトの名無しさん:2012/02/14(火) 19:07:19.86
>>2
^はxorで、両方のビットが同じなら0、同じでなかったら1になる演算。
それは0xfeになる。
5デフォルトの名無しさん:2012/02/14(火) 19:29:24.50
>>3
ホントにゴミなもんですいません

>>4
ありがとうございます
助かります
6デフォルトの名無しさん:2012/02/14(火) 19:32:25.97
7デフォルトの名無しさん:2012/02/14(火) 19:36:18.66
>>6
何ヶ月か前も同じコード見た記憶があるんだけど、なんで何回もきくの?
8デフォルトの名無しさん:2012/02/14(火) 19:53:09.84
>>6
どうなの?
9デフォルトの名無しさん:2012/02/14(火) 19:53:12.95
c言語初心者です。
バブルソートの問題なのですが、前から順に入れ替えたいと思い、
以下のソースを作成したのですが、うまくいきませんでした。
どこに問題があるのか教えていただけるとありがたいです。
#include <stdio.h>
int main(void){
int i,j,temp;
int suji[]={2,5,4,3};
for(i=0;i<4;i++){
for(j=i;j<3;j++){
if(suji[j]>suji[j+1]){
temp=suji[j];
suji[j]=suji[j+1];
temp=suji[j+1];
}
}
}
for(i=0;i<=3;i++){
printf("%d\n",suji[j]);
}
return 0;
}
よろしくお願いします。
10デフォルトの名無しさん:2012/02/14(火) 19:57:04.09
>>9
値の交換が間違ってるのと(tempに二回代入してる)
最後の表示はjじゃなくてiを使う
11デフォルトの名無しさん:2012/02/14(火) 19:59:55.89
>>9
値の交換はこうだろ。

temp=suji[j];
suji[j]=suji[j+1];
suji[j+1]=temp;
12デフォルトの名無しさん:2012/02/14(火) 20:04:01.88
>>10
おっしゃる通りにしたらうまくいきました。
ありがとうございました。

>>11
うまくいきました。
ありがとうございました。

また機会があったらお願いします。
13デフォルトの名無しさん:2012/02/14(火) 20:09:23.94
codepad使えば。
http://codepad.org/FUJglqDE
14デフォルトの名無しさん:2012/02/14(火) 20:16:36.17
根本的におかしいところは指摘しないとかw
15デフォルトの名無しさん:2012/02/14(火) 20:19:43.07
>>13
それバブルソートじゃないだろw
16デフォルトの名無しさん:2012/02/14(火) 20:23:10.97
おっと、すまん。
http://codepad.org/1pinYZZ8
17デフォルトの名無しさん:2012/02/14(火) 20:30:34.07
バブルソートしてみた。
http://www.youtube.com/watch?v=ljMU6kLfa7E&feature=related
昔、いろんなソートを可視化した動画を見たんだけどみつからない...
18デフォルトの名無しさん:2012/02/14(火) 20:33:30.95
>>16
それもバブルソートじゃないだろ?
19デフォルトの名無しさん:2012/02/14(火) 20:39:25.05
>>9
for(j=0;j<3-i;j++){
だな
20デフォルトの名無しさん:2012/02/14(火) 20:43:53.08
>>19
だね
21デフォルトの名無しさん:2012/02/14(火) 21:03:01.71
バブルソートはK&Rで覚えた。
22デフォルトの名無しさん:2012/02/14(火) 21:05:25.76
しかし、バブルソートなんて初心者には弊害しかねーんじゃねーか?
23デフォルトの名無しさん:2012/02/14(火) 21:06:38.91
>>22
弊害ってどんな?
24デフォルトの名無しさん:2012/02/14(火) 21:11:06.17
バブルソートなんて難解なモンを初心者たる>>22に教えるとその時点で挫折するので
弊害しかない

っていうことだろう
25デフォルトの名無しさん:2012/02/14(火) 21:16:46.98
そういうことか
でもそれで挫折するなら教えることがほとんど無いな
26デフォルトの名無しさん:2012/02/14(火) 21:18:29.61
脱落する人は早めにあきらめてもらったほうが、お互い幸せだろう?
27デフォルトの名無しさん:2012/02/14(火) 21:18:45.92
ソートは教えちゃいけねえんだよ
自分で思いつくまでの過程が大事なんだ
28デフォルトの名無しさん:2012/02/14(火) 22:14:51.61
そうなのか。
バブルから選択ソート、マージ、クイックと何一つ自分で思いつけなかったわ。
29デフォルトの名無しさん:2012/02/14(火) 22:16:10.91
そういえばビンソートは自分で思いついて天才かと思ったな。
30デフォルトの名無しさん:2012/02/14(火) 22:16:21.86
選択ソートくらいは思いつくだろ
31デフォルトの名無しさん:2012/02/14(火) 23:16:03.53
挿入ソートも配列二つ使うのなら割と自力で思い付けるよな
32デフォルトの名無しさん:2012/02/14(火) 23:45:36.71
アルゴリズムの本にいろいろ載ってたから、自分で考える前に知ってしまったわ。
33デフォルトの名無しさん:2012/02/14(火) 23:49:08.20
実はシャッフルの方が奥深い
34デフォルトの名無しさん:2012/02/14(火) 23:57:59.38
そうと知ってればなあ。
35デフォルトの名無しさん:2012/02/15(水) 00:34:29.02
だね
36デフォルトの名無しさん:2012/02/15(水) 00:35:02.11
これは触っちゃダメだな
そーっとしとこう
37デフォルトの名無しさん:2012/02/15(水) 00:41:56.51
>>28
クイックソートは別格だからw
38デフォルトの名無しさん:2012/02/15(水) 00:50:20.62
自分でソートを書かなきゃならないってことはまずないんだけど
お手軽に実装できて動作が高速なコムソート(Comb Sort)はオススメ
アルゴリズムが単純だから悩まずにスラスラかける
39デフォルトの名無しさん:2012/02/15(水) 00:55:35.76
おれはそんな変なのより自分で書くならクイックソートのが簡単だな。
40デフォルトの名無しさん:2012/02/15(水) 01:52:16.15
件数が十分少ない時はクイックソートよりしょぼいアルゴリズムの方が速い
41デフォルトの名無しさん:2012/02/15(水) 01:56:50.27
へえ
42デフォルトの名無しさん:2012/02/15(水) 02:04:12.02
クイックソートでやって、ある程度塊の件数が少なくなったらアルゴリズムを切り替えるような技もある。
43デフォルトの名無しさん:2012/02/15(水) 02:04:54.78
だから何十年前の話だ。
44デフォルトの名無しさん:2012/02/15(水) 02:50:39.51
どう考えても最後がクイックだろ。メモリアクセスが広範囲にわたるから小規模なソートは得意。
45デフォルトの名無しさん:2012/02/15(水) 02:59:32.95
>>44
アホ認定。
46デフォルトの名無しさん:2012/02/15(水) 03:05:02.07
>>6
非の打ち所の無い完璧なソースですのでもう心配しないでくださいね。
47デフォルトの名無しさん:2012/02/15(水) 08:48:35.58
挿入ソートは、ソート済みの配列に追加する際には重宝する。
NBASICの時代に、市販のマージャンソフトのソート部分を修正したのはいい思い出。
48デフォルトの名無しさん:2012/02/15(水) 10:51:25.33
中央値だけを得るのに 部分省略した挿入ソート?で代用したことなら

9要素の中央値は ベタ展開で比較回数の工夫されているアルゴリズムがあるけど
要素数が可変だとすんげー面倒
49デフォルトの名無しさん:2012/02/15(水) 11:49:11.58
メディアンフィルタとかの画像処理がらみですかね
50デフォルトの名無しさん:2012/02/15(水) 11:53:19.89
そそ。 9要素中央値の出番はもろにメディアンフィルタです。

意味合いとして、値の変化の激しいところを維持しつつ ホワイトノイズを落とす って感じなので
別の1次元信号処理に応用しようとしたの(次元を可変にして)
51デフォルトの名無しさん:2012/02/15(水) 11:59:28.39
今ならSSE使えばいいだけだな。
52デフォルトの名無しさん:2012/02/15(水) 16:05:40.68
ttp://homepage3.nifty.com/mmgames/c_guide/r_lib.html#S3

isgraphのとこで、印刷できる文字ってありますが
印刷ってどういう事ですか?
53デフォルトの名無しさん:2012/02/15(水) 16:12:54.56
解決しました。
54デフォルトの名無しさん:2012/02/15(水) 16:25:24.57
int c;
c='X';
のとき

cってのはXの文字コードをint型で代入してるだけで
Xであるという事は記憶できるんですか?
55デフォルトの名無しさん:2012/02/15(水) 16:29:38.90
88っていう整数を文字コードとして解釈すれば'X'。
c='X' は c=88 とするのと同じ。
56デフォルトの名無しさん:2012/02/15(水) 16:30:57.21
>>55
でも
c=88;

c='X';

の時じゃ
isupper(c)が違います。int型って数字そのものを記憶するだけじゃないのでしょうか。

57デフォルトの名無しさん:2012/02/15(水) 16:35:02.52
違うと思っているのはキミが何かを間違えている。
58デフォルトの名無しさん:2012/02/15(水) 16:38:11.07
>>56
違わないよ。
intでもcharでも記憶するのは数値であって、文字なんか記憶してない。
88は「X」なっていう決まりにみんなが従ってるだけ。
59デフォルトの名無しさん:2012/02/15(水) 16:38:48.48
違うわけがない。
http://codepad.org/BRWznhyP
60デフォルトの名無しさん:2012/02/15(水) 16:39:03.67
>>56
http://codepad.org/8QExKnVk
一緒になるよ
61デフォルトの名無しさん:2012/02/15(水) 16:39:39.12
まぁ、ASCIIじゃない環境でやってるのなら話は別だけどな。
62デフォルトの名無しさん:2012/02/15(水) 16:39:45.99
>>57
その通りでした。c=3のとき0だったけどこれは対応が無いだけでしたね。

別にcがXを記憶していたのではなく、cの記憶していたint型の値から
isupperが文字コードに変換するという作業をしたという認識でよろしいでしょうか。
63デフォルトの名無しさん:2012/02/15(水) 16:40:32.99
かぶった上に整形もせずしかも間違えててはずかしい
64デフォルトの名無しさん:2012/02/15(水) 16:40:41.85
変換はしない。
65デフォルトの名無しさん:2012/02/15(水) 16:42:16.70
>>64
文字コードのデーターベースに参照するという事でしょうね。
66デフォルトの名無しさん:2012/02/15(水) 16:43:28.67
日本語でおk。
67デフォルトの名無しさん:2012/02/15(水) 16:46:12.98
申し訳ありません。自分なりの認識の仕方です。
68デフォルトの名無しさん:2012/02/15(水) 16:50:52.12
ゆとりらしいな。
69デフォルトの名無しさん:2012/02/15(水) 17:00:50.14
言語から入るより、コンピューターの仕組みみたいなのを先にやったほうがいいような
70デフォルトの名無しさん:2012/02/15(水) 17:38:51.29
最近のゆとりは「必要があれば覚える」ってスタンスだからそういうところからやらないんだよ
そのほうが実質的で合理的、俺KAKKEEEEEEEEEEEEEEEEEEEEEEEEEEEとか思ってんだろ
71デフォルトの名無しさん:2012/02/15(水) 17:48:07.89
#define C_SIZE 256
#include <stdio.h>
#include <string.h>
int main(void)
{
  char c[C_SIZE], substring[C_SIZE];
  int i, length;
  for(i = 0; i < C_SIZE; ++i) {
    c[i] = i;
  }

  length = 0x7E - 0x20 + 1;/* 0x7Eは、~のASCIIコード */
  strncpy(substring, &c[0x20], length);/* 0x20は、半角空白のASCIIコード */
  substring[length] = '\0';
  puts(substring);
  return 0;
}
72デフォルトの名無しさん:2012/02/15(水) 17:50:06.52
>>70
まぁソフトウェアに限って言えば今は仕事ないでしょ?
コンピュータの仕組み知ってても就職ないし。

73デフォルトの名無しさん:2012/02/15(水) 17:52:00.65
Turbo Dump Version 5.0.16.6 Copyright (c) 1988, 1999 Inprise Corporation
Display of File 1.TXT

000000: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./
000010: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 0123456789:;<=>?
000020: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F @ABCDEFGHIJKLMNO
000030: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_
000040: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F `abcdefghijklmno
000050: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 0D pqrstuvwxyz{|}~.
000060: 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
74デフォルトの名無しさん:2012/02/15(水) 18:22:13.30
必要があれば覚えるっていう本来は要領の良さによる賞賛されるべき能力が
単位を取ることにしか活かされてないってのが問題だね

勉学に励む上でこの能力を活かせばいいのに。
75デフォルトの名無しさん:2012/02/15(水) 18:39:03.00
こういう構造体があったとする
struct A{int width; int height; char* header; char* data;};

実際にはこのようにインスタンス生成される(一例)
struct A a = {
.width = 20, .height = 20,
.header = "%name=smile a=#CCCCCC b=#FFCCCCC c=#FFFF00 d=#000000",
.header = "%name=brick a=#CCCCCC b=#FFCCCC";
.data =
"aaaaaaaaaaaaaaaaaaaa"
"bbbbbabbbbbbbbbbabbb"
"bbbbbabbbbbbbbbbabbb"
"bbbbbabbbbbbbbbbabbb"
"bbbbbabbbbbbbbbbabbb"
"aaaaaaacccccaaaaaaaa"
"abbbbbbccccccccbbbbb"
"abbbbcccccccccccbbbb"
"abbbccccdcccdcccbbbb"
"abbbccccccccccccbbbb"
"aaaaccccccccccccaaaa"
"bbbbbccccdddcccbabbb"
"bbbbbabccccccbbbabbb"
"bbbbbabbbbbbbbbbabbb"
"bbbbbabbbbbbbbbbabbb"
"aaaaaaaaaaaaaaaaaaaa"
"abbbbbbbbbabbbbbbbbb"
"abbbbbbbbbabbbbbbbbb"
"abbbbbbbbbabbbbbbbbb"
"abbbbbbbbbabbbbbbbbb"
};
7675:2012/02/15(水) 18:42:00.94
訂正
.header = "%name=brick a=#CCCCCC b=#FFCCCC"; この行は不要
7775:2012/02/15(水) 18:54:06.14
>>75を見れば、仕様はわかると思う。xpm系の亜流だと思う。(わからない人はいいです。さよなら)

BMP画像を変換して、この形式のCソースファイルとして出力するツールが欲しい。
pirntfでもFILE書き込みでも、なんでもいい。
とにかくこの形式に変換する簡単なツールでいい。

自分で書くの面倒なのでだれか書いてくれると助かる。
(ただし、標準C以外のライブラリーの使用はできないものとする。libbmp.aなどは使用できない制約)

簡単なものでいい。
制限が強くても構わない(たとえば256色パレットモードのBMP限定など)
78デフォルトの名無しさん:2012/02/15(水) 18:55:52.31
自分でやれ
79デフォルトの名無しさん:2012/02/15(水) 19:00:05.20
JavaとかC#とかならともかく、Cは所詮アセンブラの豪華なやつだし、
コンピュータの仕組み的な知識は必須だと思うな。
配列とか構造体とかも他の高級言語でいうような抽象的な構造じゃなくて、
メモリへのラベル付けみたいなもんでしかないし。
8075:2012/02/15(水) 19:01:49.25
詳細な仕様を調べて無いのでわからないのだけど、おそらくパレット数はアルファベットの印字可能文字数が限度な気がする。
ので、[a-zA-Z]の50パレット程度が限度と考えて変換すればいいと思う。
(複数文字で1パレットという表し方が可能かどうかは不明)

0-9の数文字はランレングスに使うとか言いかねないので、使わない方が無難な気がする。@#%あたりの記号文字も危ないので使わない方が無難だと思う。
(とにかく、まだ仕様が決まってない。よくわからない状態)

とりあえず、BMPを50パレット程度の上記フォーマットのCコードへ変換して出力するツールを誰か書いてくれるとラクなのでお願いしますスーパーハッカーのみなさん
81デフォルトの名無しさん:2012/02/15(水) 19:09:29.33
ちゃんと宿題スレで依頼しろよ
82デフォルトの名無しさん:2012/02/15(水) 19:22:09.42
>>80
失せろゴミ
83デフォルトの名無しさん:2012/02/15(水) 19:23:12.36
>>79
コンピュータの仕組み的な知識っていうけど、構造的な理解必要なの?

メモリってものがあるっていう理解以上に深いものはないでしょ。


int a=30;
なら何番地に30

string s="str"なら
何番地から何番地にかけてs t r
っていうね。

84デフォルトの名無しさん:2012/02/15(水) 19:29:21.99
C言語でスレッドって出来るの?

85デフォルトの名無しさん:2012/02/15(水) 19:30:42.13
>>83
プログラムカウンタ、スタックポインタ、スタックフレーム、スタック、ヒープ、
みたいな、実行時のイメージみたいなのは持ってる必要があると思う。
86デフォルトの名無しさん:2012/02/15(水) 19:34:31.41
スタックポインタって何?
87デフォルトの名無しさん:2012/02/15(水) 19:36:59.22
A7の別名
88デフォルトの名無しさん:2012/02/15(水) 19:39:52.22
>>84
できるはず…?

実際は、C++コンパイラ(ライブラリ)をつかうとおもう。
たとえば、SmartWin
exitThread = fork(x, & KozuchiWidgets::ThreadWaitForObjectsCall);
これは、Cにみえるでしょ

C++Builder4のVCL(「TThread オブジェクトは,アプリケーションで複数の実行スレッドを作成できる抽象クラスです」)
89デフォルトの名無しさん:2012/02/15(水) 19:48:29.86
>>84
Windows APIでは、
CreateThread()
TerminateThread()
ExitThread()
90デフォルトの名無しさん:2012/02/15(水) 19:52:33.35
結局ライブラリ必要なんかwww
Cって機能少ないなぁ
91デフォルトの名無しさん:2012/02/15(水) 19:56:20.27
アセンブラを除いたら一番プリミティブな道具だもの
92デフォルトの名無しさん:2012/02/15(水) 20:00:32.13
>> 77
(わからない人はいいです。さよなら)

これにムカついたので作りません
9375:2012/02/15(水) 20:00:51.81
osがposix準拠ならpthread使える
#include <pthread.h>

#include <stdio.h>
void* f(void* a){int i=100; while(i-->0) putchar(*((char*)a));}

main(){
pthread_t a,b;
pthread_create(&a, NULL, f, "A");
pthread_create(&b, NULL, f, "B");

pthread_join(a, NULL);
pthread_join(b, NULL);
}
94デフォルトの名無しさん:2012/02/15(水) 20:04:15.68
C言語において抽象データ型って何でしょう?
また抽象データ型の反対って何ですか?
95デフォルトの名無しさん:2012/02/15(水) 20:17:09.13
Cには言語がサポートする抽象データ型っていうのはないんじゃないの?
自前で作ったものでシミュレートする事はできるだろうけど。
言葉的には抽象の反対は具象だわね。
9675:2012/02/15(水) 20:17:19.43
データを抽象化するためのテンプレートとなる抽象定義のメタ型となる型のことじゃね。
C++だと純粋仮想関数だけで定義したクラスを抽象クラスと呼ぶけど、それに近い概念のC版は知らない。
97デフォルトの名無しさん:2012/02/15(水) 20:18:11.02
>>96
なんでコテなの?
クソコテなの?
9875:2012/02/15(水) 20:20:10.59
>>92
べつにいいわ、もう書いたし。
99デフォルトの名無しさん:2012/02/15(水) 20:21:34.79
>>96
意味わかんねー...
100デフォルトの名無しさん:2012/02/15(水) 20:34:26.98
wikiって専門用語はかなり難しい記述でなされてるね。
慣れないと分からんわ。
101デフォルトの名無しさん:2012/02/15(水) 20:45:49.10
struct 構造体は抽象データ型じゃないの?
102デフォルトの名無しさん:2012/02/15(水) 20:53:56.32
Cの構造体はメモリ領域へのラベル付け。
もちろんオフセットを使うよりは抽象的だろうけど、
抽象データ型ってのはそういうのじゃないと思う。
103デフォルトの名無しさん:2012/02/15(水) 21:33:28.72
メモリ領域からキョリを感じさせるデータの扱いが抽象データ型?
104デフォルトの名無しさん:2012/02/15(水) 21:40:47.66
charは何で文字型と呼ばれてるのか。
105デフォルトの名無しさん:2012/02/15(水) 21:43:37.92
アスキー文字1文字入れるのに1バイト必要だからじゃね
106デフォルトの名無しさん:2012/02/15(水) 21:45:47.05
intはじゃぁ4倍文字型じゃないのか
107デフォルトの名無しさん:2012/02/15(水) 21:49:12.49
>>106
アホがいる……
108デフォルトの名無しさん:2012/02/15(水) 21:56:01.01
何でww
int型はcharの4倍大きい容量でしょw
109デフォルトの名無しさん:2012/02/15(水) 22:07:23.94
半端な知識/前提と普遍ゴッチャだと
配列 = 等間隔に一様なデータ並べた構造
と決め付けて掛かっちゃうからねー
110デフォルトの名無しさん:2012/02/15(水) 22:14:17.67
いや、配列はそうだろ。
何が言いたいのか知らんが
111デフォルトの名無しさん:2012/02/15(水) 22:27:53.09
自分自身が何の話をしているのか隠したままハッタリかます奴は
いじめるとおもろいぞ
112デフォルトの名無しさん:2012/02/15(水) 22:41:22.03
sizeof(int) >= sizeof(char) は確実だけど
sizeof(int) == sizeof(char) * 4 は環境次第じゃないっけ
113デフォルトの名無しさん:2012/02/15(水) 22:48:10.78
ていうかなんで型のサイズって規定されてないんですかね?
C言語マスターさん教えてください
114デフォルトの名無しさん:2012/02/15(水) 22:50:31.73
>>112
うん。
あと、intが16bit以上であることも確実
115デフォルトの名無しさん:2012/02/15(水) 22:52:04.25
漢字とかのユニコードってint型で保持できるわけ?
116デフォルトの名無しさん:2012/02/15(水) 22:53:01.09
>>115
符号化方式によっては保持できるかと
117デフォルトの名無しさん:2012/02/15(水) 22:54:00.81
>>113
いったん決めたら後から変えたくなっても変えづらいから。
今はbit数で型指定できるからそれで問題ないでしょ
118デフォルトの名無しさん:2012/02/15(水) 22:54:18.11
C言語と相性の良いグラフィックライブラリって何ですか?
有償でインストールするのでお願いします。
119デフォルトの名無しさん:2012/02/15(水) 23:00:52.56
>>113
世の中にはいろんなアーキテクチャがあるからだよ。
>>115
専用の型を使え。
>>118
環境/用途による。
120デフォルトの名無しさん:2012/02/15(水) 23:24:22.59
>>119
漢字の型ってあるの?

kyara型とか?
121デフォルトの名無しさん:2012/02/15(水) 23:27:05.84
>>120
環境による。
122デフォルトの名無しさん:2012/02/15(水) 23:39:56.96
まぁユニコードってとか言ってるやつが心配するこっちゃねーわな。
12375:2012/02/15(水) 23:41:50.67
文字コードが妙に複雑なのは、アスキーコードと互換性を持たせようとしてるのと、
記録容量ケチろうとしてるのが原因。

1文字4バイト固定の文字コードをアングロサクソンが受け入れれば、以降に書かれるアプリで文字コードの問題は未来永劫起こらない。
124デフォルトの名無しさん:2012/02/15(水) 23:52:48.56
ふーん
125デフォルトの名無しさん:2012/02/15(水) 23:53:10.90
>>123
お前はユニコードも知らんのか。
126デフォルトの名無しさん:2012/02/16(木) 00:36:01.22
16ビットでは不足していた。Unicodeは、拙速で失敗した
127デフォルトの名無しさん:2012/02/16(木) 00:40:21.25
いつの時代だよ。
128デフォルトの名無しさん:2012/02/16(木) 00:41:15.29
「65536個じゃ足らんかった」
UTF-16
UTF-8
UTF-32
http://toro.2ch.net/test/read.cgi/tech/1291075205/475-476
129デフォルトの名無しさん:2012/02/16(木) 01:19:04.38
Unicodeのコードポイント1つは
字面上の1文字に対応するとは限らないので
>>123みたいな発想は手遅れ
130デフォルトの名無しさん:2012/02/16(木) 01:39:20.38
>>118
グラフィックライブラリ?
GUIではなくて? マルチメディアライブラリ? ハードウェアで高速描画?
有償のライブラリ?
131デフォルトの名無しさん:2012/02/16(木) 01:49:17.87
もう、32バイトで一文字のビットマップ直接表現しようぜ。
132デフォルトの名無しさん:2012/02/16(木) 01:49:46.43
頭、大丈夫か?
133デフォルトの名無しさん:2012/02/16(木) 01:51:45.81
64bitの有能なパソコンだとC言語使ったら何か変わるの?
134デフォルトの名無しさん:2012/02/16(木) 01:58:29.84
メモリがたくさん使える。
135デフォルトの名無しさん:2012/02/16(木) 02:01:54.54
visual C++ダウンロードしたいのですが有償ですか?
古いのでいいのなら無償でインスコできますかね?
136デフォルトの名無しさん:2012/02/16(木) 02:02:19.54
express
137デフォルトの名無しさん:2012/02/16(木) 02:10:57.34
>>136
2010 expressを今ネトインスコしてます。
まじでドキドキします。
俺のPCで動くのだろうか。
138デフォルトの名無しさん:2012/02/16(木) 02:46:12.85
ドキドキするね
139デフォルトの名無しさん:2012/02/16(木) 02:52:44.52
起動遅過ぎだなぁ
140デフォルトの名無しさん:2012/02/16(木) 03:13:02.49
マイクロソフトの人にdreamsparkのCD貰ったけど使ってないな
141デフォルトの名無しさん:2012/02/16(木) 06:15:16.58
>>139
ずっと起動しとけば問題ない
142デフォルトの名無しさん:2012/02/16(木) 15:40:52.76
二つのint型変数の値を返したい場合は、構造体を返すのがいいのでしょうか。
それとも、それぞれを分けて、一つずつ値を返す関数を書くのがいいのでしょうか。
あるいは、その二つのint型変数をグローバル変数として宣言し、呼ばれる側の関数で処理をするのがいいのでしょうか。
ないしは、呼ばれる側の変数にアドレスを渡して、ポインタを使って直接アクセスするのがいいのでしょうか。

私は、ポインタを使って直接アクセスするように書いたのですが、この方法では呼ぶ側の関数で必要のない変数(二つのint型変数)を宣言しなければならず、これが少し気持ち悪い気がするのです。
こんなときはどのようにするのが一番いいのでしょうか。
143デフォルトの名無しさん:2012/02/16(木) 15:44:03.96
配列で返せばいいんだよ
144デフォルトの名無しさん:2012/02/16(木) 15:47:02.34
>>142
二つのint型変数の値を返すんだから、返してもらう方(呼び出し側)が器用意してあげないでどうする?
145デフォルトの名無しさん:2012/02/16(木) 15:49:34.14
>>142
>呼ぶ側の関数で必要のない変数
それ値返す必要が無いんじゃね?
146デフォルトの名無しさん:2012/02/16(木) 15:53:34.90
/* 新規ファイルの作成*/
void makefile(const char *filename) {
FILE *fp;
char in[5], out[5];
if ((fp = fopen(filename, "r")) == NULL) {
fp = fopen(filename, "a");
fclose(fp);
} else fclose(fp);
output_data(in, out);
output_file(filename, in, out);
}
/* 出勤、退勤の打刻 */
void output_data(char *p, char *q) {
int i;
for (i = 0; i < 5; i++) {
p[i] = 0x00;
q[i] = 0x00;
}
puts("出勤時刻の打刻");
printf("出勤時刻:");
scanf("%4s", p);
puts("退勤時刻の打刻");
printf("退勤時刻:");
scanf("%4s", q);
}
/* ファイルに書き込む */
void output_file(const char *filename, char *in, char *out) {
FILE *fp;
fp = fopen(filename, "a");
fprintf(fp, "%s,%s\n", in, out);
fclose(fp);
}
147デフォルトの名無しさん:2012/02/16(木) 15:57:18.05
>>144
これがソースなのですが、inとoutの値を返すのにはその器が必要ですよね。


ありがとうございました。
148デフォルトの名無しさん:2012/02/16(木) 15:58:57.31
>二つのint型変数
待て。話が違うぞw
149デフォルトの名無しさん:2012/02/16(木) 16:02:37.39
>>148
このソースでは数値を文字列として受け取り、あとからatoi関数で変換しようと思ったのですが、本当はint型のinとoutという変数を使いたかったのです。
すみませんorz
150デフォルトの名無しさん:2012/02/16(木) 16:11:45.02
guidに文字を割り当てれば
全ての文字を表せる、おれおれ文字コードのできあがり。
151デフォルトの名無しさん:2012/02/16(木) 16:25:01.40
>>142
もともと2つの整数をメンバーとする構造体(Win32のRectやPoint)が存在し、
それを返すことで見通しが良くなるなら、それを返してもよい。整数2つくらいなら問題ない。
その関数の返却値のために構造体を作ることは控えた方がいい。

>>148ならば配列で渡す場合が多いと思う。
152デフォルトの名無しさん:2012/02/16(木) 17:43:49.25
visual C++のコンパイラの名称って何て言うんですか?
153デフォルトの名無しさん:2012/02/16(木) 17:50:09.38
Microsoft (R) C/C++ Optimizing Compiler
って自称してる。
154デフォルトの名無しさん:2012/02/16(木) 18:02:46.01
>>153
なるほど。


コマンドプロンプトでのコマンドはVisual C++独自のものってあるんですか?
155デフォルトの名無しさん:2012/02/16(木) 18:12:36.23
は?
156デフォルトの名無しさん:2012/02/16(木) 18:13:33.06
>>155
コンパイルするときのオプションコマンドですよ。
独自のものあるんでしょうか?
157デフォルトの名無しさん:2012/02/16(木) 18:18:34.71
http://msdn.microsoft.com/ja-jp/library/9s7c9wdw(v=vs.100).aspx
自分で判断してください
158デフォルトの名無しさん:2012/02/16(木) 18:18:44.78
KARAの盤権はフジパシフィック音楽出版
つまり宣伝すればするほど儲かるフジテレビ
http://www.officiallyjd.com/wp-content/uploads/2011/02/20110211_kpop_22.jpg

Kポップの版権を大量に抱えるフジパシフィックの取締役の物まねをする石橋
http://petite-soeur.dyndns.org/cgi-bin/up2/src/ps217256.jpg
KARAと踊る木梨
http://petite-soeur.dyndns.org/cgi-bin/up2/src/ps217372.jpg
とんねるずの韓流始めました
http://petite-soeur.dyndns.org/cgi-bin/up2/src/ps217209.jpg


韓国ageだけならまだしもとうとう日本sageまで行った売国ウジテレビチョン
※すべて蛆テレビで放送されたドラマ内の映像
記事・http://f2.upup.be/f/r/Eg9oj2i3qj.jpg
リトルTシャツ・http://f2.upup.be/f/r/0mnCmqmRHt.jpg
ワラ人形・http://f2.upup.be/f/r/97LrjtAqCU.jpg
首相・http://f2.upup.be/f/r/wH05SJZsJP.jpg
JAP・http://f2.upup.be/f/r/gX5bBAhSal.jpg
159デフォルトの名無しさん:2012/02/16(木) 18:20:06.83
コンパイルオプション何てよっぽど高度な事しない限り必要ないと
思いました
160デフォルトの名無しさん:2012/02/16(木) 18:22:51.67
161デフォルトの名無しさん:2012/02/16(木) 18:31:49.54
>>160
ありがとう兄さん

でも使う事なさそうだね
162デフォルトの名無しさん:2012/02/16(木) 19:05:33.82
>>161
使いまくるよ。
cl /? で一覧出てくるからどうぞ。
163デフォルトの名無しさん:2012/02/16(木) 19:43:23.39
コンパイラーオプションを指定しないことは極めて稀。
164デフォルトの名無しさん:2012/02/16(木) 20:15:33.79
質問です。
このコードで表示されたアドレスは、どこを指すアドレスなのでしょうか?
http://ideone.com/RuybV
165デフォルトの名無しさん:2012/02/16(木) 20:18:33.35
ポインタのポインタアドレス
166デフォルトの名無しさん:2012/02/16(木) 20:29:06.68
>164
"abc"の先頭アドレスと
"def"の先頭アドレスが格納されている
ポインタ配列の先頭アドレス。
167デフォルトの名無しさん:2012/02/16(木) 20:31:14.77
visual C++だけど一つのsolutionだけで一つのプログラムしか
作れないの?

helloworl.cppとgoodbye.cppの二つのC++file作って実行したい。
168デフォルトの名無しさん:2012/02/16(木) 20:31:32.28
str[0]のアドレス。
169デフォルトの名無しさん:2012/02/16(木) 20:32:19.39
プロジェクトを追加すればいい。
170デフォルトの名無しさん:2012/02/16(木) 20:32:38.06
図解w

 str
 ↓
+--+
|  →{ 'a', 'b', 'c', '\0' }
+--+
|  →{ 'd', 'e', 'f', '\0' }
+--+

171デフォルトの名無しさん:2012/02/16(木) 20:41:26.04
ああー、理解できました。
ありがとうございます。
172デフォルトの名無しさん:2012/02/16(木) 21:19:03.90
/* gen.c >>149 */
#include <stdlib.h>
#include <stdio.h>
void gen(int *pin, int *pout)
{
  *pin = 142;
  *pout = 149;
}

int main(void)
{
  int in, out;

  gen(&in, &out);

  printf("%d\n%d\n", in, out);
  return 0;
}
173デフォルトの名無しさん:2012/02/16(木) 21:23:06.02
Rubyなら普通に二つ以上返り血もてるぞ
174デフォルトの名無しさん:2012/02/16(木) 21:29:33.45
はいはいRubyスレにかえんな
175デフォルトの名無しさん:2012/02/16(木) 21:30:24.97
visual C++でプログラム実行したときコマンドプロンプト以外に開く
ウインドウが邪魔で仕方ない。
これ何でしょうか?
176デフォルトの名無しさん:2012/02/16(木) 21:35:01.13
ドッキングで解決しました。
この欄なんですか?
177SCHEME餃子 ◆8X2XSCHEME :2012/02/16(木) 22:12:20.20
>>173
あれは言語の意味論としては、メソッドがコレクションを返した上で代入時に分配してる。
真に複数の返り値 (多値) をもっている言語はやっぱり LISP くらいじゃないかなぁ。
どちらかが常に便利というわけではないけどね。

スレ違いスマソ
178デフォルトの名無しさん:2012/02/16(木) 23:25:56.07
>>149
2つの値のペアに意味があるならstructにすればいい。
今回はstructにした方がいいケース。プログラムがそれなりに大きいなら
きっとほかにもメンバーが入るはず。
>>156
お前がいいたのはオプションじゃなくてコマンド名だろ。
コンパイラドライバの名前はclだ。
>>177
Occam2が持ってたな。a, b := c, d
パラレルプログラミングがとても簡単だったな。
179デフォルトの名無しさん:2012/02/16(木) 23:34:55.45
多重代入はperlにもある。
180デフォルトの名無しさん:2012/02/16(木) 23:55:49.43
181デフォルトの名無しさん:2012/02/16(木) 23:56:52.69
※ロートさん大変なことに成ったね。独島守護天使ことキムテヒ(ロート雪ごこちテヒ)
2月19日 韓国は即刻竹島から?出て行け 日本国民大規模デモi?n浅草
日時 2/19(日曜日)【集合場所】金竜公園【集合時間】13:30【出発時間】14:00

デモ主催者のゆうさんがキムテヒをCMに起用するロート製薬糾弾も決定!
コールの一例
「ロート製薬は韓国の竹島侵略を正当化しているキムテヒをCMに起用するなー」
「ロート製薬は韓国の竹島侵略を認めた事になるぞー」
竹島の侵略不法占拠を続ける韓国と
その手先に成り下がったロート製薬への怒りを表明しましょう!! ロート不買!

http://www.nicovideo.jp/watch/sm16895198
182デフォルトの名無しさん:2012/02/17(金) 00:19:49.21
javaとjavaスクリプトの違いって何ですか?
183デフォルトの名無しさん:2012/02/17(金) 00:25:38.21
>>182
全然関係ない別の言語。
スレ違いだけど、だいたいスレ違いだからもう気にしない。
184デフォルトの名無しさん:2012/02/17(金) 00:29:02.61
>>183
javaスクリプトってブラウザで動くアプリケーションのための言語って
いうイメージです。アプレットみたいな。

違いますか?
185デフォルトの名無しさん:2012/02/17(金) 00:33:20.79
>>184
消えろアホ
186デフォルトの名無しさん:2012/02/17(金) 02:10:03.45
187デフォルトの名無しさん:2012/02/17(金) 02:35:40.09
Cでハッシュのプログラムを書くとき、ハッシュのサイズ(ハッシュ値の取る範囲)は
どう決めるものでしょうか。特に事前にトータルのデータ数がわからない場合に。

最初に決めたハッシュのサイズよりデータがはるかに多いと、ハッシュ値の衝突
が増えて性能が落ちますよね? そのためにはあらかじめハッシュのサイズを大きい
値にしておかないといけないのか、あるいは途中でハッシュのサイズを伸張する
ようなことができたりするのかな、と...
188デフォルトの名無しさん:2012/02/17(金) 02:47:05.48
標準ライブラリじゃないんだからそれはお前次第だ。
189デフォルトの名無しさん:2012/02/17(金) 02:49:16.84
途中で大きくしてリハッシュするような実装も沢山あるよ。
サイズは素数がいいとか色々な説があるw
190デフォルトの名無しさん:2012/02/17(金) 02:51:11.45
>>187
ハッシュ値は32bit程度でおk(32bitを超えるテーブルは使わないだろうから)
ハッシュテーブルの大きさに比べてデータが多くなったら
ハッシュテーブルを伸長して再格納するだけ
191デフォルトの名無しさん:2012/02/17(金) 05:51:16.51
再格納するだけだね
192デフォルトの名無しさん:2012/02/17(金) 06:23:55.70
分割コンパイルを勉強したいのですが、これを勉強するのは企業なり研究室に入ったりしてからなのでしょうか。
なかなか参考書には載ってない内容で、勉強するのが難しそうです。
193デフォルトの名無しさん:2012/02/17(金) 06:27:41.74
そうですね。
194デフォルトの名無しさん:2012/02/17(金) 07:54:46.88
>>188-191
なるほど。しかし再格納は効率を考えるとそれほど自明でないような気も...
やっぱテーブルが埋まってきたときに全エントリを一気にリハッシュとかしないですよね?
新規に大きいハッシュテーブルを用意する一方古い方も残しておいて、徐々に移行する
とか?

ちなみにこの手の処理で参考になるような文献とかコードとかありますかね。
195デフォルトの名無しさん:2012/02/17(金) 07:59:12.78
196デフォルトの名無しさん:2012/02/17(金) 08:01:19.45
>>194
リハッシュはそんなに重くない処理なので一気にやってしまう
徐々に移行させようとするほうが遅くなる
197 ◆QZaw55cn4c :2012/02/17(金) 08:08:14.34
>>192
そんなに難しいことではありません。
分割コンパイル自体をお題にした書物は思いつかないのですが、たとえばこれでいろいろと周辺事情をみてみるのはどうでしょうか?
http://www.amazon.co.jp/dp/4774117544/
198デフォルトの名無しさん:2012/02/17(金) 08:09:33.74
199デフォルトの名無しさん:2012/02/17(金) 08:13:28.55
>>197
無関係杉ワロタw
さすがだな。
>>194
とりあえずこれ見てから考えたらいい。
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0
200 ◆QZaw55cn4c :2012/02/17(金) 08:45:42.75
>>199
ふふふ、それが分割コンパイルを最初に習うには絶好の書籍だと考えているのです。
無関係ではありません。
201デフォルトの名無しさん:2012/02/17(金) 08:47:50.11
     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶

202デフォルトの名無しさん:2012/02/17(金) 13:45:09.35
こいつが分割コンパイルの概念をはじめて見て驚愕したのがこの本なんだろう
鳥のインプリンティング並の脳みそしかないんだな
203デフォルトの名無しさん:2012/02/17(金) 15:47:30.37
ハッシュ値は32bitってどういうこと?
32bitのパソコン使うってこと?
204デフォルトの名無しさん:2012/02/17(金) 15:49:16.80
>>203
256bitのハッシュ値計算しても有効に使えないだけ
205デフォルトの名無しさん:2012/02/17(金) 15:55:57.40
256bitのハッシュ値ってどういうこと?
恥ずかしながら..
206デフォルトの名無しさん:2012/02/17(金) 15:57:32.82
どういうことってどういうこと?
わけわからん。
207デフォルトの名無しさん:2012/02/17(金) 15:59:14.64
QZって国立大出身?
このスレの人で高卒プログラマーいる?
208デフォルトの名無しさん:2012/02/17(金) 16:03:54.96
203bitのハッシュ値はないの?

256bitとか32bitとか64bitとか2の倍数じゃん。
209デフォルトの名無しさん:2012/02/17(金) 16:08:42.07
ハッシュ関数 f(x) が返す値の範囲が 256bit長の値 ってことでしょ
210デフォルトの名無しさん:2012/02/17(金) 16:10:43.24
256バイト入力して2048ビットのハッシュ出力してたら
ハッシュの意味ねーからな
211デフォルトの名無しさん:2012/02/17(金) 16:11:48.70
意味が無い?どうして?
212デフォルトの名無しさん:2012/02/17(金) 16:12:15.27
>>210
単にハッシュ値が大きくなっただけでは?
213デフォルトの名無しさん:2012/02/17(金) 16:14:28.92
>>210
2048bit 以上のデータを与えるケースも想定した上で
たまたま 256バイトのデータでした
というのも十分ありえる話です。
214デフォルトの名無しさん:2012/02/17(金) 16:20:42.98
データを与えるという意味が分かりません。
215デフォルトの名無しさん:2012/02/17(金) 16:23:58.98
一つのデータが2048bit?

存在するデータの総数が2048bit?

216デフォルトの名無しさん:2012/02/17(金) 16:29:46.24
ハッシュ値で 2048ビットが欲しいとなると
少なくともデータ件数は 2048ビット以上ないとおいしくないんじゃ…
→そんな件数想定しない →意味無い
217デフォルトの名無しさん:2012/02/17(金) 16:30:56.00
衝突が起きなそうでいいじゃねえか
218デフォルトの名無しさん:2012/02/17(金) 16:35:19.69
もうちょっと日本語分かりやすくしてくれ。


データを与える何ていう日本語は意味が分からない。


データがあるでしょうよ。
219デフォルトの名無しさん:2012/02/17(金) 16:46:46.11
そこはわかれよ
220デフォルトの名無しさん:2012/02/17(金) 16:50:04.36
ttp://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B

抽象データ型(abstract data type)とは、データに対して行うことができる
一揃いの操作群によって、数理科学的な定義で、
あるいはプログラミング言語で記述されたデータ型のこと。

221デフォルトの名無しさん:2012/02/17(金) 16:52:13.13
おせえよw
222デフォルトの名無しさん:2012/02/17(金) 16:52:25.21
 ↑
この文章も意味不明。

【一揃いの操作郡によって】は後のどの部分にかかってるのか不明。
日本語として正しいのかも不明。
後数理科学的って何だよ。数学的じゃだめなのかよ。
俺が馬鹿なのかもしれんが。
223デフォルトの名無しさん:2012/02/17(金) 16:53:44.03
>>222
数学的なものをコンピュータで扱うのは無理ぽ
224デフォルトの名無しさん:2012/02/17(金) 16:54:35.38
使い方だけ定義されてて仕組みや作り方が決まってないのが抽象データ型だよ。
225デフォルトの名無しさん:2012/02/17(金) 16:54:57.11
>>223
哲学的だな。

とにかく俺は理系の適性が皆無な事が分かった。
院は行かず就職しよう。
226 ◆QZaw55cn4c :2012/02/17(金) 20:21:36.79
>>202
あたらずといえども遠からず。>>197 の前身 http://www.amazon.co.jp/dp/4874085032/ で感激しました。
この手の類書はなく非常に嬉しかったことを覚えています。後にネットワークバイトオーダーではまったりもしましたが。
K&R2 逆ポーランド電卓は昔も今もよくわかってません。
227デフォルトの名無しさん:2012/02/17(金) 20:25:20.78
そんな低レベルでよくコテできるな。
228デフォルトの名無しさん:2012/02/17(金) 20:45:39.22
コテじゃありませんトリップです
229デフォルトの名無しさん:2012/02/17(金) 20:48:37.67
まともな人間なら二度と顔を出せないくらいの恥を恥とも思わないクズだからな
230デフォルトの名無しさん:2012/02/17(金) 21:03:00.39
大なり小なり自分の歴史を改ざんするから生きていける
ただしこいつは大幅に度が過ぎてる
231デフォルトの名無しさん:2012/02/17(金) 21:15:40.47
>>230
改竄なんかしません忘れるだけです
232デフォルトの名無しさん:2012/02/17(金) 21:24:31.17
無かったことにするんだろ。改変じゃん。
233デフォルトの名無しさん:2012/02/17(金) 21:58:35.68
存在を否定しませんし肯定もしませんわからないと答えるだけです
234デフォルトの名無しさん:2012/02/17(金) 22:33:02.61
だけだね
235デフォルトの名無しさん:2012/02/17(金) 22:50:45.02
だけどQZはポーランドだのネットワークだのコンピュータ用語に対する
理解が深いよね。

羨ましい。


俺何てプロバイダとサーバの違いがいまだに分からないんだから調べても。
236デフォルトの名無しさん:2012/02/17(金) 23:01:02.22
自作自演かよ…
237デフォルトの名無しさん:2012/02/17(金) 23:24:17.55
スルーしろよ…
238デフォルトの名無しさん:2012/02/18(土) 01:59:13.41
しかし、RPNの電卓もなくなっちゃったねぇ。
全然欲しくなかったがw
239233:2012/02/18(土) 02:21:29.98
>>238
欲しい
240デフォルトの名無しさん:2012/02/18(土) 02:37:14.84
なんだそのコテ。
241デフォルトの名無しさん:2012/02/18(土) 02:40:28.57
>>239
欲しけりゃ買えよ。
242デフォルトの名無しさん:2012/02/18(土) 02:43:38.58
売ってるのか?
243デフォルトの名無しさん:2012/02/18(土) 02:50:10.78
情弱乙。
244デフォルトの名無しさん:2012/02/18(土) 08:44:28.70
>>243
情弱乙
245デフォルトの名無しさん:2012/02/18(土) 10:02:09.47
なぜエラーになるんでしょうか?
while((c = fgetc(file)) != EOF){
if(strcmp(c, ',')==0)printf('a');
printf("%c\n",c);
}
246デフォルトの名無しさん:2012/02/18(土) 10:04:18.90
わかりません
247デフォルトの名無しさん:2012/02/18(土) 10:13:19.11
>>245
エラーメッセージくらい貼れよクズ
248デフォルトの名無しさん:2012/02/18(土) 10:39:14.58
カスしかいないな。これくらいエラーメッセージ見なくてもわかるだろ。
引っ込んでろよ。>>246-247

strcmpは文字列の比較。char *を渡さなきゃならない。この場合は==で調べりゃいい。
if(c == ',')printf('a');
あと、先回りして回答しとくと
char c;
じゃなく
int c;にすること。
249デフォルトの名無しさん:2012/02/18(土) 10:42:19.19
>>248
頭悪すぎる
250デフォルトの名無しさん:2012/02/18(土) 10:47:34.69
while((c = fgetc(file)) != EOF){
if(strcmp(c, ",")==0)printf("a");
printf("%c\n",c);
}
251デフォルトの名無しさん:2012/02/18(土) 11:27:45.25
if (!strcmp(c, ",")) printf("a");
のほうが俺カッコイーwwってなる
252デフォルトの名無しさん:2012/02/18(土) 11:35:39.06
>>245です
うまく解決できませんでした
IF文のとこでこんなエラーがでます
assignment makes pointer from integer without a cast
253デフォルトの名無しさん:2012/02/18(土) 11:39:51.65
strcmpにintを渡して良いって書いてある?
マンコまんど読みなさい
254デフォルトの名無しさん:2012/02/18(土) 11:50:26.53
/* useeq.c */
#include <stdio.h>
int main(void)
{
  int c;
  FILE *file;
  file = fopen("useeq.c", "r");

  while( ( c = fgetc(file) ) != EOF ) {
    if(c == ',') {
      printf("a");
    }

    printf("%c", c);
  }

  fclose(file);
  return 0;
}
255デフォルトの名無しさん:2012/02/18(土) 12:19:28.35
>>251
a == b → strcmp(a, b) == 0
a >= b → strcmp(a, b) >= 0
a <= b → strcmp(a, b) <= 0

↑みたいに覚えてるから!より==0が好きだわ。
256デフォルトの名無しさん:2012/02/18(土) 12:25:49.73
0 == strcmp(a, b)
これだけは絶対にヤダ。こういう書き方する奴殺したくなる。
257デフォルトの名無しさん:2012/02/18(土) 12:26:50.15
痛風しました。
いてて
258デフォルトの名無しさん:2012/02/18(土) 12:32:49.07
うむ
259デフォルトの名無しさん:2012/02/18(土) 13:27:57.88
dwmに下記のコードがありました。


char *tags[TLast] = {
[Tscratch] = "scratch",
[Tdev] = "dev",
[Twww] = "www",
[Twork] = "work",
};

これって、純粋なcの配列の定義のしかたですか?
それとも,gnuの拡張とかでしょうか?
260デフォルトの名無しさん:2012/02/18(土) 13:30:56.82
>>256
太古の昔、== と = の書き間違いをコンパイラに指摘させるために、
そんな風に書く流派があったのじゃ。ふぇふぇふえ。
261デフォルトの名無しさん:2012/02/18(土) 13:34:36.11
>>256
jedのコードは全部そんなだったな
左辺値が即値だから代入できないし、むしろ推奨されるべき記法だろ
a == 0
は廃れて良い。
0 == a
の方が、はるかにマシ
262デフォルトの名無しさん:2012/02/18(土) 13:37:02.52
>>259
C99 での書式
263デフォルトの名無しさん:2012/02/18(土) 13:39:54.33
>>261
コンパイラが警告を出すからそんな変な記法は不要。
-Werrorでおk。
264デフォルトの名無しさん:2012/02/18(土) 13:40:31.59
なんで変なの?
265デフォルトの名無しさん:2012/02/18(土) 13:43:32.07
>>260-261, >>263
C99を知らない初心者。のこのこ出てきて恥晒すことないのに。
それとも露出プレー中か? ww
266デフォルトの名無しさん:2012/02/18(土) 13:44:33.48
これは恥ずかしいだろうなwww
267デフォルトの名無しさん:2012/02/18(土) 13:44:56.54
>>260
アンカー間違えてごめんね。でもそれを知ってて殺したいといっているんだ。
268デフォルトの名無しさん:2012/02/18(土) 13:48:25.03
>>267
俺も好きではないし、もう廃れたと思ってるよ。
269デフォルトの名無しさん:2012/02/18(土) 13:48:51.79
>>264
「a == 0」は「a equal to zero(a はゼロと等しい)」…つまり、aを他の何かと比較するという意図が明瞭だが
「0 == a」は「zero equal to a(ゼロは a と等しい)」…つまり、ゼロを他の何かと比較するという意図にとれる
「定数を他と比較」したい、ということを意図しているならいいが、基本的には意味的に変にならないかな
270デフォルトの名無しさん:2012/02/18(土) 13:49:16.27
>>261
キミは死ね。

>>263
だよね。
271デフォルトの名無しさん:2012/02/18(土) 13:49:32.86
>>265
なんだこいつw
272デフォルトの名無しさん:2012/02/18(土) 13:50:03.22
C言語で作られた有名なアプリケーションソフトってどんなものがありますか?
自分はprintfで文字を画面に表示させるくらいの事しかできない初心者です^^
273デフォルトの名無しさん:2012/02/18(土) 13:51:31.07
>>271
羞恥プレー中です。
274デフォルトの名無しさん:2012/02/18(土) 13:57:49.38
家にある本はK&Rの初版40冊だけなので、私も初心者です。
275デフォルトの名無しさん:2012/02/18(土) 13:58:29.69
>>272
とりあえずUNIXかな。

もともとはUNIXを移植するためにアセンブラを書きたくない、って用途で
書かれたものだから。

276デフォルトの名無しさん:2012/02/18(土) 14:02:21.89
>>265
c99の中の人、乙です。ポータビリティ考えて、大概はc89に合わせるだろ
冗談抜きで、c99の規格って、どこの業界で使われるもんなの?
277デフォルトの名無しさん:2012/02/18(土) 14:09:22.13
>>272
速度が必要なもの全部。ブラウザ、エディタ、gnuplot、octave,...
ベンダや言語設計者の意志に左右されては困るもの全部。
278デフォルトの名無しさん:2012/02/18(土) 14:10:09.27
AppleのObjective-Cだと、C部分はc99にするのがデフォ。
他には見ないな。

でも>>265はc99知らないだろw
279デフォルトの名無しさん:2012/02/18(土) 14:15:53.25
>>276
LinuxカーネルでもFreeBSDカーネルでもバリバリに使ってる。
280デフォルトの名無しさん:2012/02/18(土) 14:18:40.52
>>279
はぁ?c99で拡張された部分だぞ。本当にあるならコード張れ
281デフォルトの名無しさん:2012/02/18(土) 14:24:53.27
282デフォルトの名無しさん:2012/02/18(土) 14:28:13.74
>>275
>>277
ありがとうございます
283デフォルトの名無しさん:2012/02/18(土) 14:29:15.68
>>280
たとえば↓の225行目〜
http://lxr.linux.no/#linux+v3.2.6/kernel/sysctl.c

ところで、なんで使われてないと思ったの?
284デフォルトの名無しさん:2012/02/18(土) 14:32:03.57
自分ではブロックの最初以外で変数宣言するのくらいしか使わないけど。
配列とか構造体の初期化の書き方は便利だな。<初めて知ったw
285デフォルトの名無しさん:2012/02/18(土) 14:46:48.04
>>281,283
Σ(゚∀゚ノ)ノキャー
FreeBSDもlinuxも、c99の規格以前からあるだろうから
拡張された機能のあるコードを、それまで以前のものと混ぜたがらないと思いますた...。
他にも、コンパイラがc99の機能をサポートしていないだとか、その他、諸々の事情で
使われることはないだろうと思ってますた。吊ってきまふ
286デフォルトの名無しさん:2012/02/18(土) 15:28:25.44
言語仕様と性能は直接は関係ない。
性能はコンパイラの性能次第。
287デフォルトの名無しさん:2012/02/18(土) 15:31:05.82
perlなどスクリプト言語でも、バイナリデータの入出力が可能だったら
C/C++ソースのOSと大差ない性能出せる可能性はある。
チューニングに手間は掛かるが。
要するに言語と性能は直結してない。
288デフォルトの名無しさん:2012/02/18(土) 15:38:00.07
>>287
perlがバイナリ扱えないとか。
お前、ちょっと恥ずかしすぎるからレスしない方がいいよ。
289デフォルトの名無しさん:2012/02/18(土) 15:53:47.72
もしかしたらコンパイルの意味で「バイナリデータの入出力」って言ってるのかもしれんけど、
perlじゃどうがんばってもCなみは無理。
290デフォルトの名無しさん:2012/02/18(土) 15:56:20.28
>>285
FreeBSDもLinuxもgcc前提だからねー
FreeBSDはgccから離脱する準備を着々と進めてるようだけど
291デフォルトの名無しさん:2012/02/18(土) 15:57:19.18
実行ファイル、バイナリデータは0か1の羅列。
0か1(バイト列)を出力可能言語だったら、C言語ソースをコンパイルしたものと
同じ速度まではいける。
292デフォルトの名無しさん:2012/02/18(土) 16:07:26.06
>>291
データとか基本テキストでもってて、実行時にコンテキストで判断して数値に変換したりしてるんだろ?
perlの言語使用じゃCなみは無理だろ。
293デフォルトの名無しさん:2012/02/18(土) 16:14:42.25
アホか可能。
ネイティブ実行形式を出力するんだよ。
簡単にするには、必要最小限のアセンブラコンパイラをスクリプト言語で実装すればいい。
C/C++ ⇒ アセンブラの変換は既存のコンパイラでやったとして、実質的にはスクリプト言語で生成したファイルとなる。
294デフォルトの名無しさん:2012/02/18(土) 16:18:20.88
コンパイラを作ればいいとかもう現実的じゃないなあ
しかもCで書くのと同等の効率にするためにどんな頭のいいコンパイラを書けというのか
295デフォルトの名無しさん:2012/02/18(土) 16:20:54.70
速度を出すためにはperl的な書き方を避けないと難しいんじゃないの?
296デフォルトの名無しさん:2012/02/18(土) 16:23:38.24
原理としては0、1の出力が可能ならCコンパイラと同等のことは可能。

アセンブリ言語 - Wikipedia
CPUが直接実行できる言語は機械語のみであるが、
機械語は数字(内部的には二進数)の羅列なので人間には理解しにくい。
そこで、機械語を直接記述するのではなく、ニーモニックと呼ばれる命令語でプログラムを記述することで、
人間により分かりやすくしたものがアセンブリ言語である。
297デフォルトの名無しさん:2012/02/18(土) 16:24:58.24
>>296
お前の頭は飾りかよ
298デフォルトの名無しさん:2012/02/18(土) 16:26:28.05
C++ソースを、オールRubyのC++コンパイラや、オールPHPのC++コンパイラでコンパイルして
既製品のC++コンパイラの速度に追いつくことは原理的には可能。
299デフォルトの名無しさん:2012/02/18(土) 16:26:54.58
>>296
現実的な解に到達するまでのコストを無視する原理主義者ですねお気持ちよくわかります
300デフォルトの名無しさん:2012/02/18(土) 16:27:31.67
>>298
話がすりかわってるぞ
301デフォルトの名無しさん:2012/02/18(土) 16:28:50.03
perl的なプログラムなら、結局perlのランタイムが必要になるから、
ネイティブコードにしてもあんまり速くならないと思う。

逆にperl的な書き方を避けて書けばC並の速度は出せると思うけど、
perlで書く意味はなくなってしまう。

302デフォルトの名無しさん:2012/02/18(土) 16:29:53.02
CやC++やC99など言語によって速度や性能が決まるのでは無く
コンパイラのチューニングで速度が決まると言いたい。
激遅のスクリプト言語でコンパイラを実装したとしても、チューニング次第では既製品を超える速度を出すことは可能。
303デフォルトの名無しさん:2012/02/18(土) 16:33:14.77
コンパイラを実装するのは、どんな遅いスクリプト言語でやろうが、コンパイルが遅くなるだけで、出てくるオブジェクトには関係ないじゃん。
304デフォルトの名無しさん:2012/02/18(土) 16:34:36.81
>>293
むり。
実行時にいろいろ処理の必要な言語仕様は、コンパイルしてもCなみにはならない。

言語仕様によらずコンパイルさえすればどの言語でもCなみになるってことなら、
JITの処理系のある言語は、起動時だけ遅くてあとはCなみに動かないといけないけど
JITコンパイラが研究されまくってるJavaでさえCなみにはなってない。
305デフォルトの名無しさん:2012/02/18(土) 16:36:23.98
コンパイルさえすればどんな言語でもCなみになるって思ってる奴は、
「猿でもわかるコンパイラの作り方」みたいな本でも買って、動的型の言語がどう
動くか想像してみろよ。
306デフォルトの名無しさん:2012/02/18(土) 16:37:39.47
> 多くのプログラミング言語はチューリング完全である。

チューリング完全 - Wikipedia
計算理論で、ある計算のメカニズムがチューリング機械と同じ計算能力をもつとき、その言語はチューリング完全であるという。
ラムダ計算はチューリング完全である。
これは、Yコンビネータによりラムダ計算の範囲内で再帰ができ、これがループと等価な能力をもつことから証明できる。
そのほか、μ再帰関数やマルコフアルゴリズムもチューリング完全である。
多くのプログラミング言語はチューリング完全である。
一見単純な機能しか持たない言語がチューリング完全である。
例としては、純LISP、Lazy K、Brainfuckなどがある。
正規表現はチューリング完全でない(チョムスキー階層も参照)。
SQLや、ループの書けない表計算マクロなども、チューリング完全でない。
307デフォルトの名無しさん:2012/02/18(土) 16:39:31.17
死ぬほど遅くてもチューリング等価だからな。
308デフォルトの名無しさん:2012/02/18(土) 16:41:46.59
EXEファイルの内部構造(PEヘッダ)
Windows実行ファイル「EXE」の謎に迫る

皆さんは、アプリケーションを起動させるEXEファイルの中身について考えてみたことはありますか?
本稿では、EXEファイルの内部構造について解説していきます。特にEXEファイルに関する日本語の資料が少ないのが現状です。
そのため、解析に手を出してみたいと思っても挫折してしまった方も少なくないのではないでしょうか。
本稿は、筆者自身の経験を踏まえ、実際にEXEファイルの解析ができるようになるための資料となるよう解説していきます。
http://codezine.jp/article/detail/412
309デフォルトの名無しさん:2012/02/18(土) 16:43:23.96
>>307
遅さとコンパイラの性能は別だ。
動作の速いコンパイラが、速い実行ファイルを生成するとは限らない。
310デフォルトの名無しさん:2012/02/18(土) 16:44:18.09
>>309
その事は>>303にもう書いた。
311デフォルトの名無しさん:2012/02/18(土) 16:45:48.79
>>302
Cと同等のデータ構造扱えるようになれば可能かもしれないね。
でもそれは既にperlじゃなくなる。ハッシュ使わずにperlプログラミングしろとか。
ハッシュを使ってる限り、Cで最適なデータ構造で記述されたプログラムには追いつけない。
312デフォルトの名無しさん:2012/02/18(土) 16:46:27.63
スクリプト言語で書かれたコンパイラの話をしてるのか、
スクリプト言語で書かれたプログラムをコンパイルする話をしてるのか、
どっちなのよ。
313デフォルトの名無しさん:2012/02/18(土) 16:47:20.10
スクリプト言語で、既製品のCコンパイラの速度に並ぶ実行ファイルを生成することは可能って事だろ。
314デフォルトの名無しさん:2012/02/18(土) 16:48:18.05
perl で書かれたC言語コンパイラの話をするバカを消してくれ
315デフォルトの名無しさん:2012/02/18(土) 16:49:43.38
>>313
それなら、>>301とか>>311あたりが結論なのでは。
316デフォルトの名無しさん:2012/02/18(土) 16:51:29.09
perlソースと同等のことを実現するCソースを作ることは原理的に可能。
すると、アセンブラの設計に行き着く。
317デフォルトの名無しさん:2012/02/18(土) 16:53:59.93
>>316

sub foo {
my ($s) = @_;
return eval $s;
}
318デフォルトの名無しさん:2012/02/18(土) 16:54:36.32
>>313
そのスクリプト言語の言語仕様によるけど、大概のLL系のやつは無理だな。
319デフォルトの名無しさん:2012/02/18(土) 16:56:16.01
>>317
eval使わなくても、その$sの中に何が入ってるか分からないって時点で
Cみたいな最適化無理だわな。
320デフォルトの名無しさん:2012/02/18(土) 16:59:30.77
>>316
perlソースと同等のことを実現するCソースを作ることは原理的に可能。
1 perlソースと同じくらい遅いCで書かれたプログラム
2 perlでは扱うことができないデータ構造を利用してCで書かれたプログラム
1も2も作成可能だが、perlソースから自動変換できるのは1だけ。当然2の方が早い。
321デフォルトの名無しさん:2012/02/18(土) 17:02:30.35
perlか、文字化けが酷くて解決方法検索しまくっても結局わからず投げた。
322デフォルトの名無しさん:2012/02/18(土) 17:04:01.44
インラインアセンブラのように既存仕様ではできないことを追加できるようすれば良い。
必要あればperlでその拡張perl言語を作る。
323デフォルトの名無しさん:2012/02/18(土) 17:07:09.82
C言語で可能な事は、ほとんどのスクリプト言語で実現可能かつ速度も同等できるのは真実。
手間を無視すれば。
324デフォルトの名無しさん:2012/02/18(土) 17:23:59.77
>>323
ほとんどのスクリプト言語でって、Rubyでどう手間をかけてもC並になるとは思えないけど。
325デフォルトの名無しさん:2012/02/18(土) 17:27:51.03
C言語で生成したEXEをbase64に変換してRubyソースへ貼り付けバイナリ出力してみろ。
簡単にC言語並の速度を達成できることが確認できる。
326デフォルトの名無しさん:2012/02/18(土) 17:49:23.69
>>325
ワロタw
実行ファイルの中身をソースに書いて出力するだけw
そりゃほとんどの言語でできるわなw
327デフォルトの名無しさん:2012/02/18(土) 17:51:23.67
EXEの仕組みを知ってスクリプト言語でゼロからEXEを構築して出力すればアレンジがきく。
328デフォルトの名無しさん:2012/02/18(土) 17:59:05.51
やっと言いたいことが分かったわ
どんな言語でも実行ファイルを自分で出力するプログラムを書けば
どんな実行ファイルも作れると言いたいのか

それって実行環境ごとにプログラム変えなきゃいけないし
高級言語で書く意味ないだろ
329デフォルトの名無しさん:2012/02/18(土) 18:10:57.24
いやさすがに、ジョークだろ?
実行ファイルのバイナリをソースに貼るとか、インラインアセンブラの機能をつければスクリプト言語でもC並ってのは。
330デフォルトの名無しさん:2012/02/18(土) 18:11:30.59
>>328
っ「中間コード」
331デフォルトの名無しさん:2012/02/18(土) 18:13:48.33
大昔のパソコンのゲームとかそういうの実際にあったなw
332デフォルトの名無しさん:2012/02/18(土) 18:14:55.51
アホが話をひっくり返しただけ
333デフォルトの名無しさん:2012/02/18(土) 19:51:34.48
ブラウザもC言語にしたら早くなると思うんだけど
プログラマーの皆からしてみればこのアイディアについてどう思う?
334デフォルトの名無しさん:2012/02/18(土) 19:53:32.56
やってみれば?
335デフォルトの名無しさん:2012/02/18(土) 19:53:56.96
>>333
よし、がんばれ?
336デフォルトの名無しさん:2012/02/18(土) 20:21:23.99
さあ、がんばれ
337デフォルトの名無しさん:2012/02/18(土) 20:24:27.43
ブラウザは最初からCとかC++あたりなんじゃないの?
338デフォルトの名無しさん:2012/02/18(土) 20:26:16.23
ブラウザはCでできてるんじゃないの?
339デフォルトの名無しさん:2012/02/18(土) 20:26:41.61
バイナリ入出力機能をつければC言語と同等まで高速化可能。
340デフォルトの名無しさん:2012/02/18(土) 20:39:54.09
ブラウザにバイナリ入出力機能をつければC言語と同等まで高速化可能。
341デフォルトの名無しさん:2012/02/18(土) 20:53:01.73
へえ
342デフォルトの名無しさん:2012/02/18(土) 21:04:48.51
native client 流行らないかな。
343デフォルトの名無しさん:2012/02/18(土) 22:25:25.51
流行らないよ
はい次
344デフォルトの名無しさん:2012/02/18(土) 22:27:59.79
日本語にバイナリ入出力機能をつければC言語と同等まで高速化可能。
345デフォルトの名無しさん:2012/02/18(土) 22:36:42.53
こういうプログラムも書いたことないやつの言うことをいつまでも相手にするなよ。
346デフォルトの名無しさん:2012/02/18(土) 23:06:09.37
つーかPEヘッダーの形式さえ知ってたら
コマンドシェルからでもバイナリ実行ファイルなんて作れるだろ。
347デフォルトの名無しさん:2012/02/18(土) 23:37:11.71
>>261
0 == aで良いんだが、見難い。
慣れの問題だと思うが。。
348デフォルトの名無しさん:2012/02/18(土) 23:45:23.19
0 == aって中途半端。両辺変数だったらどうすんだよ。
#define EQ(a,b) ((a) == (b))
のほうがはるかにまし。
349デフォルトの名無しさん:2012/02/18(土) 23:47:05.15
警告レベル高めにして警告が出ないようにコードを書くって基本的なことをするだけで防げるミスを
わざわざ奇をてらってるような書き方するのってテクニックに走りすぎてるって言うか。
コードは素直に書くのが一番だな。
350デフォルトの名無しさん:2012/02/19(日) 00:06:44.76
一番だね
351デフォルトの名無しさん:2012/02/19(日) 00:24:11.17
>>349
警告レベルを高くしても出てこなかった時代の工夫じゃないのか?
352デフォルトの名無しさん:2012/02/19(日) 00:29:34.80
>>351
>>261みたいに、今でもしたほうたいいって思ってる人が話を振るから定期的にこの話がでてくる。
353デフォルトの名無しさん:2012/02/19(日) 01:20:02.06
VisualStudio2010ExpressEditionでコンパイルしてます。

char hoge = 0xF0;
printf("%X", hoge);

とすると"FFFFFFF0"と出力されてしまいます。
printf("%X", (char)hoge);
としてもだめでした。

"F0"という出力を期待してるのですが,%Xの指定ではまずいのでしょうか?
354デフォルトの名無しさん:2012/02/19(日) 01:33:37.00
"%02X"
355デフォルトの名無しさん:2012/02/19(日) 01:36:37.69
と思ったけどうそ。
unsigned char
356デフォルトの名無しさん:2012/02/19(日) 01:37:08.96
%hhX
357デフォルトの名無しさん:2012/02/19(日) 01:45:43.38
printf("%X", *(unsigned char*)&hoge);
358デフォルトの名無しさん:2012/02/19(日) 01:52:39.67
char だと 0xF0 は -16 だから、int に拡張されても -16 => 0xFFFFFFF0。
359デフォルトの名無しさん:2012/02/19(日) 01:53:46.15
"%02X" → "FFFFFFF0"
"%hhX" → "FFF0"
("%X", (unsigned char)hoge) → "F0"

unsigned charにキャストしてうまくいきました。
どうもありがとうございました!
360デフォルトの名無しさん:2012/02/19(日) 02:42:03.69
バカにキャスト教えんな。
361デフォルトの名無しさん:2012/02/19(日) 02:46:53.70
hogeとか使ってる基地害まだいるのか
こういう公の場でホゲとか言って恥ずかしくないのかな
神経疑うわ
362デフォルトの名無しさん:2012/02/19(日) 02:54:00.71
ちいせえ…
363デフォルトの名無しさん:2012/02/19(日) 04:06:39.43
お前の…
364デフォルトの名無しさん:2012/02/19(日) 04:50:09.87
>>361
お前の基準では何を使うべきなんだ?
365デフォルトの名無しさん:2012/02/19(日) 04:51:51.52
foo, bar, bazでいい。
hogeとか間抜けすぎるな。
366デフォルトの名無しさん:2012/02/19(日) 05:41:49.28
識別子にchinkoやらmankoやらunkoやら出て来ることすらある2chで何を言うのやら
367デフォルトの名無しさん:2012/02/19(日) 05:45:53.77
そんなの2chでも見たことねーな。
368デフォルトの名無しさん:2012/02/19(日) 05:46:19.29
     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
369デフォルトの名無しさん:2012/02/19(日) 05:52:39.64
なんだニワカか
370デフォルトの名無しさん:2012/02/19(日) 05:54:51.02
間抜け乙。
371 ◆QZaw55cn4c :2012/02/19(日) 06:31:44.12
>>353
integral promotion(暗黙の型変換)により signed char 型→signed int 型に変換されたためそのような表示になりました。
char hoge = 0xf0;
char fuga = hoge & 0xff
printf("%X", fuga);

あるいは
unsigned char hoge = 0xF0;

でどうでしょうか。
372デフォルトの名無しさん:2012/02/19(日) 06:37:18.89
char fuga = hoge & 0xff
無意味乙。
ほんと、お前何も理解してないんだからレスやめとけ。
373デフォルトの名無しさん:2012/02/19(日) 06:47:25.85
どうしようもないバカだから仕方ない
374デフォルトの名無しさん:2012/02/19(日) 06:51:28.24
まるでintegral promotionの日本語訳が暗黙の型変換であるかのような書き方はよくない
375 ◆QZaw55cn4c :2012/02/19(日) 07:27:51.51
>>372
失礼。
int fuga = hoge & 0xff
でしたね。
>>374
ボーランドの解説はそんな感じでしたよ。
376デフォルトの名無しさん:2012/02/19(日) 07:28:58.41
#include<stdio.h>

int main(){
int a,b,tmp[3],i,j;

for(i=0;i<3;i++){
tmp[i]=0;
a = 0;
b = 0;
scanf_s("%d",&a,&b);
tmp[i] = a+b;
}
for(i=0;i<3;i++){
for(j=0;tmp!=0;j++)
tmp[j]/=10;
printf("%d\n",j);
}
return 0;
}

これでキーボード入力で
5 7
1 99
1000 999 と入力しようとすると3行目で強制終了しちゃうんですけどどこが間違ってるんですかね?
377 ◆QZaw55cn4c :2012/02/19(日) 07:29:08.63
まあ、「整数の上位型への変換」ぐらいが妥当なところでしょうか。
378デフォルトの名無しさん:2012/02/19(日) 07:29:55.50
なぜ日本語の仕様書の記述を無視するんだ?
379デフォルトの名無しさん:2012/02/19(日) 07:31:02.38
>>376
>scanf_s("%d",&a,&b);
380デフォルトの名無しさん:2012/02/19(日) 07:33:08.73
バカな間違いしてはアホな言い訳ばっかり
381デフォルトの名無しさん:2012/02/19(日) 07:37:37.06
言い訳ばかりだよね
382デフォルトの名無しさん:2012/02/19(日) 07:42:43.51
>>376
>for(j=0;tmp!=0;j++)
>tmp[j]/=10;
ループの終了条件がおかしくてjが配列の範囲外までいくから
383デフォルトの名無しさん:2012/02/19(日) 07:44:00.09
改行の扱いもな。
さて、いくつ間違いがあるでしょう的な。
384デフォルトの名無しさん:2012/02/19(日) 07:44:52.04
そうだね
385デフォルトの名無しさん:2012/02/19(日) 07:47:11.53
>>379
>>382
ありがとうございます。色々と修正してなんとか動きました。
386デフォルトの名無しさん:2012/02/19(日) 07:47:48.09
ダウトw
387デフォルトの名無しさん:2012/02/19(日) 07:57:09.52
>>385
いえいえ
388 ◆QZaw55cn4c :2012/02/19(日) 08:02:04.63
>>378
integer promotion の JIS の訳には批判的なものでね
389デフォルトの名無しさん:2012/02/19(日) 08:04:46.78
なにがしたいのかよくわからない
a+bの桁数を求めたいのか?
390デフォルトの名無しさん:2012/02/19(日) 08:05:52.11
言い訳すればするほどバカを晒してくw
391デフォルトの名無しさん:2012/02/19(日) 09:11:44.07
基礎もまともにやってないゴミが質問に来るようなスレ
初心者は初心者でも馬鹿は排除する方向で
392デフォルトの名無しさん:2012/02/19(日) 09:13:40.98
質問する側は別になんでもいいよ
答えるほうが馬鹿だと荒れる
393デフォルトの名無しさん:2012/02/19(日) 09:25:14.26
>>388
integral promotionの日本語訳としてはふさわしくないかもしれないねえ。
integer promotionの日本語訳として整数拡張は適切だ。

お前、自分が今まで間違えてた事を、必死になって検索して今日初めて気づいただろ。
本当にうんこだな。
394 ◆QZaw55cn4c :2012/02/19(日) 10:12:14.93
>>393
integral には「積分の」という意味もあるが「整数の」という意味もありますね。
395デフォルトの名無しさん:2012/02/19(日) 10:20:24.89
「整数のプロモーション」と「整数プロモーション」では意味が全然違う。
だから、「暗黙の型変換」なんてうんこ用語まき散らしたんだろ。w
396 ◆QZaw55cn4c :2012/02/19(日) 10:27:17.55
>>395
昔は integral promotion っていってたんですよ。今でも MSDN ではそうみたいですね。http://msdn.microsoft.com/ja-jp/library/fc9te331.aspx
C99 では integer promotion に軟化しただけで。

で、ここから先はセンスの問題ですが、integer は名詞、integral は形容詞なんですね。
規格にて promotion という名詞を修飾するのにどちらを使うのが「格式的」・「厳密的」なのかを考えて見ましょう。
397デフォルトの名無しさん:2012/02/19(日) 10:33:26.06
promotionを変換と訳するセンスには何人たりとも追いつくことはできない。www
398デフォルトの名無しさん:2012/02/19(日) 10:37:11.58
必死で検索してるねえ。でもpromotionを「変換」って説明しちゃったからねえ。
しかも鳥付だから、あれは自分じゃないという言い訳できない。www
399デフォルトの名無しさん:2012/02/19(日) 10:46:02.13
どっちもお前らの考えを言うのは勝手だが、事実を先に述べてからにしろ
知らない人が混乱する

JISでは「汎整数拡張」とか「整数拡張」と訳されている
それを知ったうえで、ここで議論してる説明をどう理解するかはご自由に
400デフォルトの名無しさん:2012/02/19(日) 10:47:30.38
草生えてるが、何があった?
401デフォルトの名無しさん:2012/02/19(日) 10:48:33.42
>>399
>>393
> integer promotionの日本語訳として整数拡張は適切だ。
402 ◆QZaw55cn4c :2012/02/19(日) 10:48:35.43
>>397,398
突っ込みどころを変えてきましたね。integer/integral についてはご納得いただけたようでなによりです。

「暗黙の型変換」について問題にしてるんですか?昔のボーランドのマニュアルにはそう書いてあったんですよ。
さすがにこれは「必死に検索」してもでてこないでしょうねえ。
type promotion は type conversion の一種と考えれば、「変換」と訳するのはあたらずといえども遠からずでしょう。まずい、というほどのことでもないと思いますが?

403デフォルトの名無しさん:2012/02/19(日) 10:56:18.42
元のは整数拡張をchar->intの暗黙の変換と説明してるだけだろ。
それを勘違いしてるのはお前。
404デフォルトの名無しさん:2012/02/19(日) 10:56:57.07
ちなみにJIS規格では「暗黙の型変換」は「implicit conversion」の訳として出てくる
で、「整数拡張」は「暗黙の型変換」のうちの一つ

過去のマニュアルがどうかなんて知らんが、さすがに同じ訳語を使うのはどうかと思う
405デフォルトの名無しさん:2012/02/19(日) 10:59:36.19
>>402
> 突っ込みどころを変えてきましたね。integer/integral についてはご納得いただけたようでなによりです。
「integer promotion」を「暗黙の型変換」と訳したうんこ思考が理解できなかったからな。
てっきり、integerとintegralの取り違えだと思ったが、真相はもっと簡単だった。
まさかpromotionを使った意味を理解していなかったとは、想像の斜め上を行っていたよ。
promotionという単語を使ってる意味を理解してれば変換などと訳さない。
ボーランドのマニュアルはどこかの翻訳会社のうんこ訳。それを根拠にするとはまさにうんこ。

↓↓↓↓↓↓↓↓↓↓これが真相www
> type promotion は type conversion の一種と考えれば、「変換」と訳するのはあたらずといえども遠からずでしょう。まずい、というほどのことでもないと思いますが?
406 ◆QZaw55cn4c :2012/02/19(日) 11:00:23.60
>>404
>さすがに同じ訳語を使うのはどうかと思う
そうですね。確かにimplicit conversion と integer promotion を完全同一視していたようです。ご指摘ありがとうございました。
407デフォルトの名無しさん:2012/02/19(日) 11:02:02.14
まじかww
そんなオチだったの?
かんべんしてくれよ。
408デフォルトの名無しさん:2012/02/19(日) 11:10:07.66
そしてまたこれがなかったこととしてしれっと出てくるクソコテ。
>>228
409 ◆QZaw55cn4c :2012/02/19(日) 11:14:20.59
>>405
>てっきり、integerとintegralの取り違えだと思ったが、

どっちもこの場合は同じ意味の単語ですけど、どうやっったら取り違えたことになるのですか?
あと昔は integral promotion って言ってたのは前に述べたとおり。

そっちが無知なのでは?
410デフォルトの名無しさん:2012/02/19(日) 11:24:12.04
> integral promotion(暗黙の型変換)により signed char 型→signed int 型に変換されたためそのような表示になりました。

これを見た瞬間、笑いをこらえるのに必死だったぜ。
そこで導いた結論が、integralの意味が分からずにそこで思考がストップして知ってる単語で説明したのだろうと。
うんこの思考を理解しろというのが無理。www

なぜ、promotionなのか理解はできたのかな?
411デフォルトの名無しさん:2012/02/19(日) 11:26:09.35
ちょっと、もうつまらないから終わりでいいよ。
412デフォルトの名無しさん:2012/02/19(日) 11:27:52.81
自演乙
413デフォルトの名無しさん:2012/02/19(日) 11:32:57.63
自演乙。
なぜ、promotionなのか理解はできたのかな?
414デフォルトの名無しさん:2012/02/19(日) 11:45:50.28
いや、おれは>>372だから。
つまらんからまた別のネタが出るまでもういいって。
415デフォルトの名無しさん:2012/02/19(日) 12:07:15.98
なんでポーランドが出てくるかと思ったらボーランドか。
お前の頭は何十年前で止まってるんだって感じだな。
416デフォルトの名無しさん:2012/02/19(日) 12:17:10.31
QZが暴れてるって話か。
くだらん
417デフォルトの名無しさん:2012/02/19(日) 12:25:30.86
何十年もやっててあれだから救いようがない。
418デフォルトの名無しさん:2012/02/19(日) 12:26:15.02
今はインプライズコーポレーションって言うんだよ、おっさんども。
419デフォルトの名無しさん:2012/02/19(日) 12:32:57.72
今っていつよ
420 ◆QZaw55cn4c :2012/02/19(日) 12:36:45.77
いまはエンバカデロ・テクノロジーズですねえ。
http://toro.2ch.net/test/read.cgi/tech/1288289096/
421デフォルトの名無しさん:2012/02/19(日) 12:38:45.99
お前ら、プログラミング以外だと生き生きしてるなw
422デフォルトの名無しさん:2012/02/19(日) 12:41:52.67
>>420
バカはお前。
423デフォルトの名無しさん:2012/02/19(日) 12:45:51.48
>>415
Turbo Cにはお世話になりました。
424デフォルトの名無しさん:2012/02/19(日) 13:02:39.78
>>420
なぜ、promotionなのか理解はできたのかな?
425デフォルトの名無しさん:2012/02/19(日) 13:32:31.48
integer を 文字型に間違えるのは1人だけ
426デフォルトの名無しさん:2012/02/19(日) 13:32:41.88
>424
integral promotion と integer promotion の違いは理解できたのかな?
427デフォルトの名無しさん:2012/02/19(日) 13:45:17.35
>>426
integral promotion: うんこが「暗黙の型変換」と訳した。
integer promotion: これのJIS訳(整数拡張)が、うんこにふさわしくない(批判的なものでね)と貶された。
428デフォルトの名無しさん:2012/02/19(日) 13:50:28.99
もういいって。
基地外の相手は次のネタまで待て。
429デフォルトの名無しさん:2012/02/19(日) 13:58:17.79
関数のreturn値の型がstatic voidというのは、どういうことを意味しているのでしょうか。
430デフォルトの名無しさん:2012/02/19(日) 14:00:18.40
>>429
その場合 static は関数を修飾して、関数がファイルスコープになる
431デフォルトの名無しさん:2012/02/19(日) 14:05:57.95
そのファイル内でしか扱えない関数ということでしょうか。
ありがとうございます。
432デフォルトの名無しさん:2012/02/19(日) 14:09:17.33
typedef static private;
typedef extern public;
433 ◆QZaw55cn4c :2012/02/19(日) 14:14:02.03
では次のネタを提供しましょう。

>>432
>typedef extern public;
extern なんていらない子。
#define extern
で必要十分。
434デフォルトの名無しさん:2012/02/19(日) 14:19:37.37
やっぱりずいぶん昔で頭が止まってるみたいだな。
435デフォルトの名無しさん:2012/02/19(日) 14:21:04.19
バカはバカのままだった
436デフォルトの名無しさん:2012/02/19(日) 14:21:53.45
f(a)=b; f(b)=a; ただし常にa=bでないこと。になるような関数の例を何か。
437デフォルトの名無しさん:2012/02/19(日) 14:23:09.14
>>436
void f(int x)
{
return ~x;
}
438デフォルトの名無しさん:2012/02/19(日) 14:23:26.08
void じゃねー
int だ
439 ◆QZaw55cn4c :2012/02/19(日) 14:23:34.45
>>436
f(x)=1/x ではいかが?

>>434 >>435
具体的に。
440デフォルトの名無しさん:2012/02/19(日) 14:24:30.85
int f(int x)
{
return x^1;
}
441デフォルトの名無しさん:2012/02/19(日) 14:26:22.76
>>432
それコンパイルできる?
static, externだけでは型宣言として完結しないから、エラーになると思うが。

>>433
QZだから突っ込むわけじゃないですが、予約語を置換していいことは無いでしょ。
変数宣言に対してのexternも置き換えられるので、そのマクロ定義はまずい。

関数に対する、externがいらない子というのは同意。
既存のソースに使われていたから、スタイルを合わせた時以外に使ったことないわ。
442デフォルトの名無しさん:2012/02/19(日) 14:29:54.47
>>439
相変わらず間抜けだな。
f(a) = f(b) = a = b = 1;
443 ◆QZaw55cn4c :2012/02/19(日) 14:30:02.18
>>441
>関数に対する、externがいらない子

変数に対する exern もいらない子
それでエラーがでるのは外部変数を初期化している場合であるが、この初期化はコードとして記述すればよい。
444 ◆QZaw55cn4c :2012/02/19(日) 14:33:10.89
>>442

a != b が前提なんでしょ?
445デフォルトの名無しさん:2012/02/19(日) 14:34:29.93
やはりQZはクズ
446デフォルトの名無しさん:2012/02/19(日) 14:35:49.69
>>443
>変数に対する exern もいらない子

グローバル変数宣言には必要じゃないですか。
externがついていないとリンクエラーになりますよね。
447デフォルトの名無しさん:2012/02/19(日) 14:45:00.69
#define Z 2
int f(int b){return ++b%Z;}
448デフォルトの名無しさん:2012/02/19(日) 14:54:31.92
>>447
ダメじゃん
449436:2012/02/19(日) 15:08:08.94
> a != b が前提なんでしょ?
いいえ
int f(int a){return a;} でないことがz

○ただし、常にa=bでないこと。
×ただし常に、a=bでないこと。
450 ◆QZaw55cn4c :2012/02/19(日) 15:27:57.65
>>446
なりません。extern をはずしてそのままOK。
ただし、宣言時の初期化はあきらめなければなりません。
451デフォルトの名無しさん:2012/02/19(日) 15:30:50.77
なんであきらめなきゃいけないんだよ。
バカ?
452デフォルトの名無しさん:2012/02/19(日) 15:31:35.02
前からそれ主張してるけど
変数の場合どれが定義でどれが宣言なのか一目でわかるためにexternをつけておくのが普通だ
コンパイルが通るからいいとか言語仕様で省略できるからいいとかは自分一人の場合のみにしておくべき
個人的には自分一人でもそんなことしないけどね
453デフォルトの名無しさん:2012/02/19(日) 15:36:09.59
>>451
うん、だからもうほっとけばいいんじゃない
extern不要論でスレ埋まってうざいわもう
QZがしつこいのはみんなわかってるだろ、餌を与えないで欲しい
454デフォルトの名無しさん:2012/02/19(日) 15:39:25.08
毎回違う人が反応してるんでしょ
いくらでも反対意見が出てくるくらい常識とは違う感覚の持ち主なんだよ
455 ◆QZaw55cn4c :2012/02/19(日) 15:41:57.90
>>452
まっ、これはリンカに依存する、という結論でしたっけ。
たしかにこのネタ、もう使い古しですかね。
456デフォルトの名無しさん:2012/02/19(日) 15:46:02.39
お前が痴呆なだけだろ。
457デフォルトの名無しさん:2012/02/19(日) 16:22:20.34
自分のミスを関係ない話に逸らして誤魔化そうと必死だなw
458デフォルトの名無しさん:2012/02/19(日) 17:51:26.36
QZはただの荒らしなんで
459デフォルトの名無しさん:2012/02/19(日) 18:06:04.07
QZが人気者で羨ましくってNGを外して何書いてるか見たけど、
無駄なことしたな。と思うばかりだからもうNGを一時的に解除したりしない。
いいなーQZ
460デフォルトの名無しさん:2012/02/19(日) 18:46:42.34
>>352
亀だけど。
>>349はその記法が「奇をてらってる」し「テクニックに走りすぎてる」といっているので、
そうしないと警告なんかでは防げないころがあったし、そのころにとっては、
奇をてらった書き方ではなく、まさしくミスを防ぐための工夫だったんだよと伝えたかった。
lintが活躍した時代でもある。

先人の工夫を今必要が無いからといって、無駄な知識というならまだしも、奇をてらったという言いまわしは乱暴すぎないか?
461デフォルトの名無しさん:2012/02/19(日) 18:57:11.20
>>460
その頃でも奇をてらった書き方だったよ。

工夫は認めるけど、ミスを検出できるメリットと見辛いと言うデメリットを比較して、
採用しないと言う奴の方が多かった。
462デフォルトの名無しさん:2012/02/19(日) 19:21:37.77
いまだに FALLTHROUGH とか書かないと落ち着かないのは秘密 <lint
463デフォルトの名無しさん:2012/02/19(日) 20:35:54.50
秘密だよね
464デフォルトの名無しさん:2012/02/19(日) 21:40:38.00
可変引数ってなんなんでしょうか?
何故、解説書などには*argsって書かれているのでしょうか?
argvというのもありますが、何が違うのでしょうか?
465デフォルトの名無しさん:2012/02/19(日) 22:21:27.01
解説書読めば?
466デフォルトの名無しさん:2012/02/19(日) 22:30:51.50
>>455
なぜ、promotionなのか理解はできたのかな?
467デフォルトの名無しさん:2012/02/19(日) 22:49:26.44
printf や scanf みたいに引数に渡す変数の数が変わっても良いようにする機構
468デフォルトの名無しさん:2012/02/19(日) 23:28:16.11
2800円台から積立をスタートしたが、現時点でトータルでみると3700円くらいか‥‥値上がりが早すぎる。
469デフォルトの名無しさん:2012/02/19(日) 23:33:26.75
>>461
ミスを検出できるというメリット
見づらいというデメリット

のどちらをとるか、となれば当然「ミスを検出できるというメリット」をとるのが普通なのでは?
if (a = 1) { } は、先入観にとらわれた頭では、なかなかみつけにくい

お前さん、バグ鳥の苦労が足りないとみえるね
470デフォルトの名無しさん:2012/02/19(日) 23:35:37.01
コンパイラが警告出す、で終わってるだろ
アホか
471デフォルトの名無しさん:2012/02/19(日) 23:40:25.94
当時そういう流派があってそれなりに認められていたのは事実だけど、
多数派ではなかったし、その後すっかり廃れたというのもまた事実。
472デフォルトの名無しさん:2012/02/19(日) 23:43:38.12
グローバル変数をそのまま関数内で使用せずに引数として渡す書き方をよく見ますが、何か理由があるんですか?
コードで書くと

int ABC;

int Function1(){
 int rrr = ABC + 10;
 return(rrr);
}

↑こうではなく↓のような書き方をしてFunction1(ABC)で呼び出す書き方をよく見かけます

int Function1(int abc){
 int rrr = abc + 10;
 return(rrr);
}
473デフォルトの名無しさん:2012/02/19(日) 23:46:40.07
#define と同じ効能を狙ってるんでは。
const とか付いてないの?
474デフォルトの名無しさん:2012/02/19(日) 23:48:50.92
ああ、そういう話じゃないすね。ごめんちゃい。

関数自体は依存させたくないって事じゃないですかね。
475デフォルトの名無しさん:2012/02/19(日) 23:53:00.64
レスどーもです
まだあまりメリットデメリットがよく分かりませんがとりあえず先人にならって後者の書き方を真似しときます
476デフォルトの名無しさん:2012/02/20(月) 00:00:41.73
>>472
関数をリエントラントにするためでしょうね。
リエントラントじゃない関数は状態を持ってしまうので、
メンテナンスが難しくなります。

また、これに関連しますが、変数の関係がわかりやすくなります。

// ==================
int a, b, c;

c = func(a, b);
// ==================

この方がcはa, bに関連している事をコードが主張しています。

func();の中で、勝手にa, bを参照して、cを更新されるようなコードは
わけがわかりません。
477デフォルトの名無しさん:2012/02/20(月) 00:12:24.64
なるほど〜
リエントラント知らなかったのですがwiki見たら大体分かりました
ありがとうございました
478デフォルトの名無しさん:2012/02/20(月) 00:14:35.38
>>476
リエントラント解って無いのに無理するな
479デフォルトの名無しさん:2012/02/20(月) 00:14:55.26
普通にテスタビリティだろ
480デフォルトの名無しさん:2012/02/20(月) 00:18:23.31
ぬぉー 知らない言葉が次々と
そんなに深い意味のある質問じゃないんでもう大丈夫です
ありがとうございました、おやすみなさい
481デフォルトの名無しさん:2012/02/20(月) 01:22:21.41
いえいえ
482デフォルトの名無しさん:2012/02/20(月) 03:58:01.03
>>478
自信がないからコテはずしてんだろうねw
分かってなきゃレスしなきゃいいのに、自己顕示欲の強いクズだなしかし。
483476:2012/02/20(月) 07:01:13.57
>>482
私はここでコテつけたこと有りませんが、どなたと勘違いなさっているのですか?

>>478
リエントラントの説明をもう少し詳しくすべきか、と思いましたが、
>>477ご自分で調べられたようですので結果オーライです。
484デフォルトの名無しさん:2012/02/20(月) 07:02:37.40
言葉を合わせてQZのトリと言った方がいいのかな?

>>478
自信がないからトリはずしてんだろうねw
分かってなきゃレスしなきゃいいのに、自己顕示欲の強いクズだなしかし。
485デフォルトの名無しさん:2012/02/20(月) 08:21:50.47
おーい、QZ〜こっちのスレはもうこないの?

P2P型の完全匿名掲示板はまだ出来ないの?その2
http://toro.2ch.net/test/read.cgi/tech/1324217575/

■暗号技術【ROUNDsurea】■
http://toro.2ch.net/test/read.cgi/tech/1180280982/
486デフォルトの名無しさん:2012/02/20(月) 08:48:42.83
>>484
うんこでいいよ。

>>476
なぜ、promotionなのか理解はできたのかな?
487デフォルトの名無しさん:2012/02/20(月) 13:03:16.45
>>476
リエントラントが使われるようになったか。
じゃあ次はセマンティクスって言葉おいとくよ。
488デフォルトの名無しさん:2012/02/20(月) 14:43:41.33
>>469
両側が左辺値だったら無理だろ

そういうトロいやつに限って
if (a == b()) で済むことを
わざわざ
c = b();
if (a == c) とかやって自己矛盾するんだよ

マトモな人に変なスタイル押しつけねえで
てめーがしっかりしやがれ
489デフォルトの名無しさん:2012/02/20(月) 14:50:04.29
>>488
矛盾してないと思うけど?
490デフォルトの名無しさん:2012/02/20(月) 14:54:48.11
>>488
ヘルメットかぶってても死亡事故が起きるからヘルメット無駄と主張する人?
491デフォルトの名無しさん:2012/02/20(月) 14:59:28.68
コンパイラが警告出すんだから変な記述で読みにくくするのはバカ。
492デフォルトの名無しさん:2012/02/20(月) 14:59:29.38
シートベルトにエアバッグがあれば
ヘルメットは無駄になるんじゃないかなぁ
493デフォルトの名無しさん:2012/02/20(月) 15:01:17.91
レーサーはヘルメットしているが。

低脳の比喩は害しかないからやめとけ。
494デフォルトの名無しさん:2012/02/20(月) 15:03:17.71
規約で指示されてたらそれに従う

個人的には
比較演算子の左側にチェックしたい側(主語に相当か?)をおきたいが
範囲内かの判定は 下限値 <= 変数 && 変数 <= 上限値 のように数直線的な記述のダブスタだったりする
495デフォルトの名無しさん:2012/02/20(月) 15:04:39.47
そんなクズな規約があるのか。
496デフォルトの名無しさん:2012/02/20(月) 15:05:54.19
>>493
レースでエアバッグなんか使うのか?
497デフォルトの名無しさん:2012/02/20(月) 15:06:38.32
本当にそんなものがあるのか知らんが、
おれならそんなクズな規約は変えるか範囲チェック用の関数を作ってそれを
使うな。
498デフォルトの名無しさん:2012/02/20(月) 15:07:02.20
>>496
低脳乙。
499デフォルトの名無しさん:2012/02/20(月) 15:09:08.04
結局低能と罵るだけで反論はなしですね
500デフォルトの名無しさん:2012/02/20(月) 15:15:00.32
そもそもの質問の意味がわからないんだが。
れーす用のエアバックが欲しければ買え。
http://blog.eigyo.co.jp/tsrinfo/article/16967?PSID=0f44853c54f0f2338e
501デフォルトの名無しさん:2012/02/20(月) 15:19:20.20
>>500
それシートベルトと一緒に使うものなのか?
502デフォルトの名無しさん:2012/02/20(月) 15:20:30.62
>>496に答えたまでだが?
503デフォルトの名無しさん:2012/02/20(月) 15:22:28.01
>>498
==の左辺は右辺値にすべしというのが、死滅すべき一派の主張。
でも、両方左辺値だから無理。

主張するなら == は=と間違えないように
a + 0 == b
と書くべしと主張すべきだね。こんなルール言い出したらぶっ殺すけど。
504デフォルトの名無しさん:2012/02/20(月) 15:23:41.13
>>502
>>492から続いてると思ってた
スマン、勘違いだったようだ
505デフォルトの名無しさん:2012/02/20(月) 15:24:57.80
>>503
通報した。
506デフォルトの名無しさん:2012/02/20(月) 15:25:51.54
アンカー間違えるな。>オレ。
>>489
==の左辺は右辺値にすべしというのが、死滅すべき一派の主張。
でも、両方左辺値だから無理。

主張するなら == は=と間違えないように
a + 0 == b
と書くべしと主張すべきだね。こんなルール言い出したらぶっ殺すけど。
507デフォルトの名無しさん:2012/02/20(月) 15:27:10.56
殺人予告ktkr
508デフォルトの名無しさん:2012/02/20(月) 15:29:45.16
>>506
そんな主張してる奴いたっけ?
509デフォルトの名無しさん:2012/02/20(月) 15:38:11.57
>>506
> ==の左辺は右辺値にすべし

これを主張してる間抜けな奴らがいるじゃん。>>261とか。
じゃ、「両方左辺値だったらどうすんだよ?」と聞くと黙っちゃう。
だから、代わりに答えてやった。
510デフォルトの名無しさん:2012/02/20(月) 15:39:33.12
>>509

左辺値についての言及しかないようだが
511デフォルトの名無しさん:2012/02/20(月) 15:42:14.93
元は>>469だろ

> 469 名前:デフォルトの名無しさん [sage]: 2012/02/19(日) 23:33:26.75
> >>461
> ミスを検出できるというメリット
> 見づらいというデメリット
>
> のどちらをとるか、となれば当然「ミスを検出できるというメリット」をとるのが普通なのでは?
> if (a = 1) { } は、先入観にとらわれた頭では、なかなかみつけにくい
>
> お前さん、バグ鳥の苦労が足りないとみえるね

>>469を無視して今更>>261とか馬鹿じゃない?

別の話だけど、

>>482には勘違いって言っておいて
>>484には何も言わないとこをみると、
やっぱ>>476はQZってことでいいだね
512デフォルトの名無しさん:2012/02/20(月) 15:42:20.90
>>510
「左辺値」、「右辺値」って知ってる? 知らなけりゃ参加資格ないよ。
513デフォルトの名無しさん:2012/02/20(月) 15:44:16.16
>>510
左辺においてある値 と 左辺値 って意味違うですよ?
514デフォルトの名無しさん:2012/02/20(月) 15:45:44.08
>>512
うん、知ってるよ。左辺値右辺値ごときでどや顔しなさんな
あとお前さんアンカーミス多すぎだから気をつけろよ

で、別に両方左辺値でも問題ないんじゃないの
そのときは残念でしたということで
515デフォルトの名無しさん:2012/02/20(月) 15:47:01.07
左辺値右辺値をどういう意味で言っているのか。
関数の返却値、代入の値、、、
色々あるでしょ。

そこの所を誤魔化そうとしているように思うなー。
516デフォルトの名無しさん:2012/02/20(月) 15:48:16.95
今時こんな話で盛り上がれるのはコンパイルもしたことない素人だけ。
517デフォルトの名無しさん:2012/02/20(月) 15:48:22.49
>>511
大本は>>256(オレ)に食いついてきた>>261
>>469あたりには参加してなかったんだ。

そんなのどうでもいいけど、0 == aとか、a + 0 == bを強制したら、ぶっ殺すからな。
518デフォルトの名無しさん:2012/02/20(月) 15:49:32.20
比較の過程で定数があるときだけ = とミスしても検知できるように 左側に置く
それ以外は好きなように か。

一貫性に欠ける感じだが、記述ルールってそんなもんだったりするしなぁ…
519デフォルトの名無しさん:2012/02/20(月) 15:52:23.76
>>518
お前、ろくにコンパイルもしたことないだろ。
520デフォルトの名無しさん:2012/02/20(月) 15:52:53.49
>>263で答えが出てる気がする
521デフォルトの名無しさん:2012/02/20(月) 15:56:07.84
Pro*cについて質問です

.pcをプリコンパイルすると.cが生成されるんですよね。
コンパイル時にワーニングが出たら改修対象は.pcのソースファイルになるんですか?
522デフォルトの名無しさん:2012/02/20(月) 15:59:44.26
>>521
そうだよ。
523デフォルトの名無しさん:2012/02/20(月) 16:01:38.94
今の時代は>>263
524デフォルトの名無しさん:2012/02/20(月) 16:03:36.73
-Wall -Werrorは基本だな。
525デフォルトの名無しさん:2012/02/20(月) 16:07:54.11
>>506
a の型がvoid*の場合どうするの?
526デフォルトの名無しさん:2012/02/20(月) 16:17:28.67
>>525
そうだね。gccだとなぜか通るが。
527SCHEME餃子 ◆8X2XSCHEME :2012/02/20(月) 17:06:27.05
>>192
激しく遅レスだが、本格的に理解したいなら Linkers & Loaders じゃね?
528デフォルトの名無しさん:2012/02/20(月) 17:20:51.75
分割コンパイルのメインは、makeなどのツールの使い方でC言語でない。
C言語でやることはプロトタイプなどの定義と本体を別々のファイルにするだけ。
難しいことはない。
529デフォルトの名無しさん:2012/02/20(月) 17:26:09.68
makeのほかにcmakeとかAutotoolsとか多数のビルドツールある。すべてを使いこなすのは疲れる。
あえてチャレンジすることもない。IDE、マウス操作で代替可能。


ビルド (ソフトウェア) - Wikipedia
ビルド自動化の一形態として、Makefileの自動生成がある。例えば、次のようなツールがMakefileを自動生成する。
GNU Automake
CMake
imake
qmake
Apache Ant
Apache Maven
530デフォルトの名無しさん:2012/02/20(月) 17:34:17.66
まあでもmakeはコンパイル以外にも使えるから使い方覚えといて損はない気がする
531デフォルトの名無しさん:2012/02/20(月) 17:36:50.43
C言語でHelloWorldを表示するだけで分割コンパイル・ビルド使ってる訳だが。
stdio.hを読み込んで、関数本体をリンクするだろ。
それが分割コンパイルだ。標準関数はコンパイル済。
532デフォルトの名無しさん:2012/02/20(月) 17:43:35.32
分割コンパイルのキモはモジュール設計。
ツールなんてアイちゃん訓練してやらせとけ。
533デフォルトの名無しさん:2012/02/20(月) 17:52:39.32
どういった関数を公開し入出力インターフェースをどうするかは開発で重要だが。
分割コンパイルを動作させるだけなら、関数のプロトタイプをヘッダファイルへ書き込んでmakeファイルを作るだけ。
ソフトウェア品質は別のことだ。
534デフォルトの名無しさん:2012/02/20(月) 17:56:54.12
そういった利便性、汎用性に関わる事はC++のクラス設計と共通する。
これはC++の標準機能だからC言語範囲外のビルドツールの勉強は不要。
クラスの勉強したら良い。
535 ◆QZaw55cn4c :2012/02/20(月) 21:50:09.56
>>531
それ、昔のDOSコンパイラならいやでも意識していたけれども、今や crti.o/crtn.o や crt1.o libc.a libgcc.a を直接さわることはないからなあ。実際、パスがどうなってるかもさっぱり。

>>192 >>527
http://www.oversea-pub.com/publications.htm はどうだろう?

>>511
QZの人気に嫉妬
536デフォルトの名無しさん:2012/02/20(月) 22:25:52.53
おまえらCPUは何使ってるの?
おれはcore i7だが
537デフォルトの名無しさん:2012/02/20(月) 22:27:03.57
Z80に決まってんだろ言わせんなよ恥ずかしい
538デフォルトの名無しさん:2012/02/20(月) 22:29:23.62
オサレな68000
539デフォルトの名無しさん:2012/02/20(月) 22:32:28.10
Amiga のCPUってなんつーのかな
540デフォルトの名無しさん:2012/02/20(月) 22:56:11.29
コジャレた68000
541デフォルトの名無しさん:2012/02/21(火) 00:15:18.17
6502はもらっていきますね
542デフォルトの名無しさん:2012/02/21(火) 00:29:08.84
SC/MPだろJK
543デフォルトの名無しさん:2012/02/21(火) 00:33:29.18
TLCS-12Aだろ
544デフォルトの名無しさん:2012/02/21(火) 00:40:05.46
6809でUNI++動かしたのはいい思い出。
545デフォルトの名無しさん:2012/02/21(火) 01:14:37.87
このくらいしか使ったことがない。
μPD8080AF, Z80, HD64B180, 6800, 6502, 6809, 68000, 68020, 68040,
8086, 80186, 80386, i386DX2, i486DX4, Pentium, Pentium Pro, i860,
PentiumII, PentiumIII, PentiumIII Xeon, Pentium4, Core2 Duo, Corei7
546デフォルトの名無しさん:2012/02/21(火) 01:16:24.52
MIPSが抜けてた。
R3000, R4000
547デフォルトの名無しさん:2012/02/21(火) 01:18:39.56
PC88でUNI+動かした
548デフォルトの名無しさん:2012/02/21(火) 01:21:04.95
アーキテクチャよりOS・文字コードとの戦いが主題だからな
いまだにprintfがどーとかこうとかやってるようなスレじゃ
549デフォルトの名無しさん:2012/02/21(火) 01:25:10.55
何の主題だ。
550デフォルトの名無しさん:2012/02/21(火) 01:32:16.07
文字コードとの戦いにさえ至っていない様な
551デフォルトの名無しさん:2012/02/21(火) 02:41:42.14
ランタイムライブラリってプログラミング組むとき意識する必要ないですか?
552デフォルトの名無しさん:2012/02/21(火) 02:46:33.30
ものによる。
553デフォルトの名無しさん:2012/02/21(火) 02:52:29.34
>>488
> if (a == b()) で済むことを
> わざわざ
> c = b();
> if (a == c) とかやって自己矛盾するんだよ

ううん。if (b() == a)ってやるんだよ。
554デフォルトの名無しさん:2012/02/21(火) 02:54:50.60
>>521
ワーニングの内容はcに沿って出るけど、改修対象はもちろんpcだよ。
555デフォルトの名無しさん:2012/02/21(火) 02:57:58.37
× ワーニング
○ ウォーニング
556デフォルトの名無しさん:2012/02/21(火) 03:00:08.37
ナルポ
557デフォルトの名無しさん:2012/02/21(火) 03:00:26.97
ウォニンじゃなくて?
558デフォルトの名無しさん:2012/02/21(火) 03:01:06.29
ヲァニンのほうが近いか。
559デフォルトの名無しさん:2012/02/21(火) 03:01:34.69
>>556
ゲッ
560デフォルトの名無しさん:2012/02/21(火) 03:03:44.70
>>559
コウメイッ
561デフォルトの名無しさん:2012/02/21(火) 03:06:10.73
562デフォルトの名無しさん:2012/02/21(火) 04:07:33.42
ワープする ( 宇宙空間のゆがみ[space warp]を利用して超光速飛行する )
ウォープ ( warp )
563デフォルトの名無しさん:2012/02/21(火) 07:35:22.87
ワーニングは日本語
564デフォルトの名無しさん:2012/02/21(火) 10:13:21.85
コンパイル通ったが、なんじゃこりゃ?
http://www.dotup.org2665987.exe_0THgIWOBb4HH2VWbiH53/www.dotup.org2665987.exe
565デフォルトの名無しさん:2012/02/21(火) 10:13:47.77
ウィルス
566デフォルトの名無しさん:2012/02/21(火) 10:44:06.22
うほっ
567デフォルトの名無しさん:2012/02/21(火) 11:03:54.72
C言語で四捨五入する関数がCランタイムにあると聞きましたが
どうやってやればいいんでしょうか?名前を教えてください
引数がdoubleで戻り値がintな関数が知りたいです
568デフォルトの名無しさん:2012/02/21(火) 12:16:06.83
>>567
return a+0.5;
569デフォルトの名無しさん:2012/02/21(火) 12:23:28.17
C++のTips - 四捨五入を行うには?:tech.ckme.co.jp
http://tech.ckme.co.jp/cpp/cpp_round.shtml
570デフォルトの名無しさん:2012/02/21(火) 13:02:59.36
round()ってC99だったのか・・・
571デフォルトの名無しさん:2012/02/21(火) 13:27:01.50
0.5をたして、きりすてます
572デフォルトの名無しさん:2012/02/21(火) 13:37:52.91
-1.5 では -1 にするの? -2 にするの?
573デフォルトの名無しさん:2012/02/21(火) 13:43:51.51
そこまで考えてないから初心者なんだろう、察してやれよ
574デフォルトの名無しさん:2012/02/21(火) 13:45:53.95
Round() 関数は四捨五入関数ではない
http://ichy.seesaa.net/article/2842259.html


最近接偶数への丸め は、端数が0.5より小さいなら切り捨て、端数が0.5より大きいならは切り上げ、
端数がちょうど0.5なら切り捨てと切り上げのうち結果が偶数となる方へ丸める。
JIS Z 8401で規則Aとして定められていて、規則B(四捨五入)より「望ましい」とされている。
単に「偶数への丸め」「最近接丸め」とも呼ばれる。
JISで定められていることから「JIS丸め」、あるいは同様にISO-31で定められていることから「ISO丸め」ともいう。
英語では、誤差の累積を嫌い銀行家が好んで使ったため「銀行家の丸め (bankers’ rounding)」ともいう。
端数処理 - Wikipedia
575デフォルトの名無しさん:2012/02/21(火) 13:57:22.40
>>574
これCのround()とは違くね?
576デフォルトの名無しさん:2012/02/21(火) 14:30:33.62
多くの環境で、最近接偶数丸めが採用されていたら、計算結果がC言語だけ異なると困るから合わせてくるはずだ。
577デフォルトの名無しさん:2012/02/21(火) 14:37:29.89
Macのmanページから

DESCRIPTION
The round() functions return the integral value nearest to x rounding
half-way cases away from zero, regardless of the current rounding direc-
tion.
:
STANDARDS
The round() , lround() , and llround() functions conform to ISO/IEC
9899:1999(E).

Linuxのmanページ
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/round.3.html
578デフォルトの名無しさん:2012/02/21(火) 14:41:35.00
>>576
知りもしないことはレスする必要ないよ?
579567:2012/02/21(火) 15:11:22.59
自分で書くとこんな感じの関数がCランタイムで欲しいです

int func(double x)
{
if(x<0) return int(x-0.5);
else return int(x+0.5);
}
580デフォルトの名無しさん:2012/02/21(火) 15:13:18.25
それでいいじゃんかw
581デフォルトの名無しさん:2012/02/21(火) 15:14:43.48
>>579

int func(double x)
{
int v;
if(x<0) x-=0.5;
else x+=0.5;
v = x;
return v;
}
582デフォルトの名無しさん:2012/02/21(火) 15:16:59.39
それそのままつかえ
583デフォルトの名無しさん:2012/02/21(火) 16:32:13.36
1.4が0になって-1.4が0になるのか
584デフォルトの名無しさん:2012/02/21(火) 16:33:45.82
ならないな
すまん
585デフォルトの名無しさん:2012/02/21(火) 16:34:23.61
>>582
そのままつかえだよね
586デフォルトの名無しさん:2012/02/21(火) 19:41:49.28
うんこいってくる
587デフォルトの名無しさん:2012/02/21(火) 19:54:02.08
0.5って無理数だから結果を整数変換すると微妙なんだよな
588デフォルトの名無しさん:2012/02/21(火) 19:55:23.40
いや有理数だよ
589デフォルトの名無しさん:2012/02/21(火) 19:55:55.49
>>587
0.5が無理数ってどんな世界に住んでいるの?
590デフォルトの名無しさん:2012/02/21(火) 19:59:46.94
>>587
バカがいたw
591デフォルトの名無しさん:2012/02/21(火) 20:00:39.01

                     / ̄\
                      | ^o^ |
                    \_/
                       r彡ソ
                       r_ノ!!        
                      r_ノ|| .         ~   ←人間
                     r_ノ!|         H
                         r_ノ|
                        r_ノ|           白ながすくじら
                      r_ノ|     ,......-..-―‐―--..r、_   
                         |  |    ヾー-゚、 :::::::::::::::::::::::::_ ̄ニ`゙、
        r、                 |  |      ゙`ー-`ー'-ー'" ̄    `'
.          | ゙、            |  |    ├──────────|
        |   ゝ               |  |
        |  {             |  |          ((((( ゆ ←まぐろ
         |  |                 |  |               |-|
        {  ヽ           /  /
         ヽ  \_      /  /   ・ ←鰯 
          ヾ.    ̄ ̄ ̄ ̄_/             
             ̄ ̄"""゙゙`´                
         |───────────|
592デフォルトの名無しさん:2012/02/21(火) 20:06:34.45
0.5は有理数だぞ

10進数 2進数
------------------
0.1 0.0{0011}
0.2 0.{0011}
0.3 0.0{1001}
0.4 0.{0110}
0.5 0.1
0.6 0.{1001}
0.7 0.1{0110}
0.8 0.{1100}
0.9 0.1{1100}
593デフォルトの名無しさん:2012/02/21(火) 20:16:32.44
スーパー初心者ですが、以下の文は{ }でブロック分にしなくてもいいですか?
#include <stdio.h>
int main(void)
{
int a;
printf ("1〜10までの好きな数字を入力してください:") ;
scanf ("%d",&a);
if (a > 10 ) printf ("入力された数値は10より大きいです!");
else if ( a < 1) printf ("入力された数値は1より小さいです!");
else printf ("入力された数値は%dです。\n",a);
return 0;
}
594デフォルトの名無しさん:2012/02/21(火) 20:22:56.81
ブロック分は時間と用法を守って定期的に摂取してください。
タブ分の取りあかついには十分お気を付け下さい。
595デフォルトの名無しさん:2012/02/21(火) 20:24:14.92
しなくてもいい

設計思想とかバイアスぬきで
いいかどうかなら
596デフォルトの名無しさん:2012/02/22(水) 02:10:42.68
>>581
何で一回変数に入れてしまったの
597デフォルトの名無しさん:2012/02/22(水) 02:13:20.94
いいんだよ
人間だもの
598デフォルトの名無しさん:2012/02/22(水) 02:17:14.32
しっかし、>>579>>581も。。。。

int func(double x)
{
if(x<0) {
x-=0.5;
} else {
x+=0.5;
}
return (int)x;
}

せめてこうだろ。。

まあ、自称玄人が三項演算使ったやつ書いてくれるよw
599デフォルトの名無しさん:2012/02/22(水) 02:22:27.34
>>579
>>569で答え出てるけどな。
int(a+.5-(a<0));
600デフォルトの名無しさん:2012/02/22(水) 02:22:40.54
>>596
debugする時に必要になる場合がある。
gccに-O3とか渡せば一時的な変数は勝手に消してくれる
だから
601デフォルトの名無しさん:2012/02/22(水) 02:27:47.37
>>599含めお前らマジで言ってんのか?w

int(d)のような書き方ができるとでも思ってるの?
キャストは(int)dだろうが。。
>>569のページはウソだから気をつけろよ
int int(double x);
のような関数を作ってあるなら別だがそうじゃないだろ?w
602デフォルトの名無しさん:2012/02/22(水) 02:41:00.92
C++のページだからウソじゃないだろw
603デフォルトの名無しさん:2012/02/22(水) 03:04:25.30
ウソじゃないどころか、C++じゃ正統だけどな。
>>601
低脳乙。
604デフォルトの名無しさん:2012/02/22(水) 03:06:54.66
しかもreturnに(int)が必要とか思ってんのか。
色々と残念なやつだな。
605デフォルトの名無しさん:2012/02/22(水) 03:25:23.59
>>601
C++知らなかったことは恥ずべきことじゃないけど、それにしてもreturn (int)x;はないわ
606デフォルトの名無しさん:2012/02/22(水) 03:42:59.90
ヘボだからしょうがないよ。
607デフォルトの名無しさん:2012/02/22(水) 07:45:26.46
Amiga Lattice C 4.0を使ってた俺は、
もう50レスぐらい前に来るべきだったな。
608デフォルトの名無しさん:2012/02/22(水) 08:09:15.68
なんでC++が出てきてんの?このスレで…。
609デフォルトの名無しさん:2012/02/22(水) 08:22:03.92
低能ばかりでわろた
質問する前にわかってよかった
よそへ行こう
610デフォルトの名無しさん:2012/02/22(水) 08:28:24.86
低能じゃないやつは質問しない
611デフォルトの名無しさん:2012/02/22(水) 08:35:19.03
つまり、論理学でいくと質問するやつは低脳、ということだな。
612デフォルトの名無しさん:2012/02/22(水) 08:48:33.79
人を馬鹿にするやつの伸びしろはたかが知れてるってことじゃない?
613デフォルトの名無しさん:2012/02/22(水) 08:59:01.44
人に馬鹿にされるような、の間違いだろ。
614デフォルトの名無しさん:2012/02/22(水) 09:23:15.57
まぁ、今時C++も知らないならそういうこったなw
615デフォルトの名無しさん:2012/02/22(水) 09:43:00.92
まあ、C言語のスレでC++知らなくても問題はないさ
ただC言語の知識ももっと欲しいとこではある
616デフォルトの名無しさん:2012/02/22(水) 10:05:46.92
まぁ問題もあったわけだがwww
617デフォルトの名無しさん:2012/02/22(水) 10:36:38.40
>>605
うわあああ。最高級に痛い奴が現れたなあ。

キャストは必要最小限にとどめるべきで、その少ない例外がdouble->intへのキャスト。
理由はコンパイラの警告を抑制するため。

Cを知らなかったことは恥だぞ。ここは「C言語なら俺に聞け」だからな。
618デフォルトの名無しさん:2012/02/22(水) 10:37:59.11
>>617
痛いのはお前だ。
619デフォルトの名無しさん:2012/02/22(水) 10:53:38.93
>>618
ふーむ、それじゃ>>598を正しく書き直して見せてくれよ。
-Wall -Werror (VC++だったら -Wall -WX)は今時は当たり前だからな。
コンパイルエラーが出るようなみっともない書き方はしないでくれよ。
620デフォルトの名無しさん:2012/02/22(水) 11:51:03.18
そうだね
621デフォルトの名無しさん:2012/02/22(水) 15:17:00.65
【速報】「痛いニュース」が、なんJのレスをロンダ転載。なんJ民が激怒中
http://engawa.2ch.net/test/read.cgi/poverty/1329888247/
622デフォルトの名無しさん:2012/02/22(水) 15:47:25.86
嫌儲くせえ。出てくるなよ。嫌われてるのわかってんの?
623デフォルトの名無しさん:2012/02/22(水) 18:07:35.36
警告とエラーが区別できない〜一緒にしたがるやつが定期的にわくな
微笑ましいことだ
624デフォルトの名無しさん:2012/02/22(水) 18:10:52.83
型変換されるからなくてもいいけど、キャストを明示的に示すことに意味がないわけでもない
どっちの言うことも極論すぎておかしい
625デフォルトの名無しさん:2012/02/22(水) 19:02:30.50
おかしいね
626デフォルトの名無しさん:2012/02/22(水) 19:06:03.13
うん、おかしいね
627598:2012/02/22(水) 19:47:05.88
お、おう。。
まさかこんなに
return (int)x;
が叩かれてるとは思ってなかったぞw
628デフォルトの名無しさん:2012/02/22(水) 20:00:45.34
>>598
いや、こうだろ
int func(double x)
{
if(x<0) {
x -= 0.5;
} else {
x += 0.5;
}
return (int )x;
}
629デフォルトの名無しさん:2012/02/22(水) 20:26:41.60
return (int)x; の問題点が何なのかわからない
630デフォルトの名無しさん:2012/02/22(水) 20:35:08.10
>>627
C++も忘れるなwww
631デフォルトの名無しさん:2012/02/22(水) 20:39:15.07
>>629
それ自体にはあまり問題はない。
が、それがなければならないと思い込んでいるところが痛い。
632デフォルトの名無しさん:2012/02/22(水) 20:41:21.29
>>624
コンパイラが心配性で警告だすんだよ。
-Wall -Werrorは当たり前なので、キャストしないとコンパイル通らない。

598.c(8) : warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data

>>629
キャスト病に感染して治癒したばかりの初心者が、キャスト病感染者と勘違いして笑ってるんだろう。
633デフォルトの名無しさん:2012/02/22(水) 20:45:48.65
rint()かround()でいいだろ。
634デフォルトの名無しさん:2012/02/22(水) 20:50:40.15
キャスト病って何?
635デフォルトの名無しさん:2012/02/22(水) 20:53:02.08
>>634
コンパイル通すために内容に関わらず何でもかんでもキャストする病気
636デフォルトの名無しさん:2012/02/22(水) 20:55:33.41
新人がキャスト病にかかってプログラマ辞めた
637デフォルトの名無しさん:2012/02/22(水) 20:56:36.18
今回の場合、int戻り値の関数で平気でdouble返すのは、
コンパイラがwarning出す出さないに関わらず気持ち悪いけどなぁ
638デフォルトの名無しさん:2012/02/22(水) 20:58:14.09
>>636
元々向いてなかったんだよ。
早く気づいてよかったね。
639デフォルトの名無しさん:2012/02/22(水) 20:59:52.08
そんな病気かかったことないぞ
640デフォルトの名無しさん:2012/02/22(水) 21:00:04.93
int func(double x)
{
if(x<0) return int(x-0.5);
else return int(x+0.5);
}

はよくて、

int func(double x)
{
if(x<0) return (int)(x-0.5);
else return (int)(x+0.5);
}

はダメな理由がわかりません。
641デフォルトの名無しさん:2012/02/22(水) 21:00:59.69
>>640
スレチ
642デフォルトの名無しさん:2012/02/22(水) 21:02:32.29
643デフォルトの名無しさん:2012/02/22(水) 21:02:35.29
>>638
いや遅いよw 次から採用試験が強化されました
644デフォルトの名無しさん:2012/02/22(水) 21:06:50.59
>>643
キャストのCの字も知らんアホを混ぜるようなクソテストやってるような会社、
そのプログラムのテストもやっぱりクソまみれの汚物、
そのクソを通過したお前も便所で仲間入りだよ
645デフォルトの名無しさん:2012/02/22(水) 21:14:38.69
int func(double x)
{
if(x<0) return int(x-0.5);
else return int(x+0.5);
}

だって

int func(double x)
{
if(x<0) return (x-0.5);
else return (x+0.5);
}

でいいだろって言われてもいいはずなのに一切おとがめなし。
でもキャスト病とか言ってる人は

int func(double x)
{
if(x<0) return (int)(x-0.5);
else return (int)(x+0.5);
}

はあり得ないと言ってる

好みでものを言ってるのかな。。謎。
646デフォルトの名無しさん:2012/02/22(水) 21:16:27.39
同じ人がずっとはりついてるわけないだろ
2ch には俺とお前の二人だけしかいないってのを信じてるの?
647デフォルトの名無しさん:2012/02/22(水) 21:18:50.26
>>644
意外とプログラムそのものの試験は無いって会社多いんだよ…
それまでは新人教育でどうにかなってたんだろうな
まぁ失敗だった訳なんだけど
648デフォルトの名無しさん:2012/02/22(水) 21:20:43.02
まあ、Cのスレなんだし、ことの発端の>>579を忠実にCで表現するなら

int func(double x)
{
if(x<0) return (int)(x-0.5);
else return (int)(x+0.5);
}

ってことだろうね
649デフォルトの名無しさん:2012/02/22(水) 21:22:50.64
C++知らないことを隠そうと必死www
650デフォルトの名無しさん:2012/02/22(水) 21:24:58.89
どゆこと?
651デフォルトの名無しさん:2012/02/22(水) 21:26:28.56
>>647
普通はそうだよね。
やめちゃったのはその新人の教育担当がまともにC知らなかったんじゃない?
ちゃんと説明されてそれを理解できる能力さえあればそんな変な病気にはかからないよ。
652デフォルトの名無しさん:2012/02/22(水) 21:35:41.32
>>651
>ちゃんと説明されてそれを理解できる能力さえあれば
無かったようです。試験も大事ってことで。
653デフォルトの名無しさん:2012/02/22(水) 21:38:52.32
>>652
もしそうなら基本的な力を見極められなかった面接とかの問題でしょ。
プログラムの試験なんてあんまりやっても意味ないよ。
プログラムしかしない派遣とかなら別だと思うけど。
654デフォルトの名無しさん:2012/02/22(水) 21:43:32.43
>>653
採用担当じゃないから詳細は知らないけど、
情報系の学校を卒業してたからあまりチェックしなかったんじゃないかなぁと予想してる
試験に加えて面接も厳しくなったと思うけどね
655デフォルトの名無しさん:2012/02/22(水) 21:46:55.39
そんなにプログラム能力が大事なの?
それなら今までに書いたプログラム持ってきてで済むと思うけど。
656デフォルトの名無しさん:2012/02/22(水) 21:51:47.68
>>645
↓コンパイルできないコードしかかけないバカは死んでいいよ。
int func(double x)
{
if(x<0) return (x-0.5);
else return (x+0.5);
}

> int func(double x)
> {
> if(x<0) return (int)(x-0.5);
> else return (int)(x+0.5);
> }
> はあり得ないと言ってる
バカ? ありえないと言っているのはキャスト病が治癒しばかりの元患者(>>605,617)。
657デフォルトの名無しさん:2012/02/22(水) 21:59:41.63
>>655
成長してくれれば問題無いんだけどね
まぁ失敗談なんで
658デフォルトの名無しさん:2012/02/22(水) 21:59:52.45
このスレでグチグチ言ってるのはお前だけということだ
659デフォルトの名無しさん:2012/02/22(水) 22:00:51.02
>>656
だったら、最初から、俺に言わないで、return (int)x;はないって言ってるやつに言ってくれよ。

俺は、そもそもint戻り値の関数で、平気でreturnにdouble値なんか渡したりしないよぉ。。(´;ω;`)
660デフォルトの名無しさん:2012/02/22(水) 22:07:12.26
なんでこんな喧嘩腰なんだろう
てか紋切り型の表現しか使えないってバカなのかな
661デフォルトの名無しさん:2012/02/22(水) 22:08:52.30
紋切り型の表現ってどういう表現のこと言ってんのかな。。
662デフォルトの名無しさん:2012/02/22(水) 22:17:19.58
たぶん「バカ」とかだろ
あ、>>660も使ってるね
663デフォルトの名無しさん:2012/02/22(水) 22:17:29.73
配列のあふれについてですけど、int aaa[10]のaaa[11]に
値を代入したとき、どういことが起きるのでしょうか。
osがぶっ壊れて最インストですか?
664デフォルトの名無しさん:2012/02/22(水) 22:18:43.23
>>663
はみ出して書いたところは壊れる。
敏感な場所ならクラッシュしたりするし、鈍感な場所なら気づかない。
普通のOSなら最悪でもそのプログラムが死ぬだけ。
665デフォルトの名無しさん:2012/02/22(水) 22:19:47.88
>>656
>↓コンパイルできないコードしかかけないバカは死んでいいよ。
コンパイルはできるよ。。

ただ、厳密には間違ってるけど言いたいことはわかるから
errorにしないでwarningでコンパイル通してあげるね
ってだけ
666デフォルトの名無しさん:2012/02/22(水) 22:21:00.33
今時は-Werrorだからそんなコードをコンパイルもせずにコミットするやつは
オイオイ、って思われるだけ。
667デフォルトの名無しさん:2012/02/22(水) 22:27:29.01
ここまで食いつくって自分の恥を隠すためにやってんのかな
668デフォルトの名無しさん:2012/02/22(水) 22:28:52.92
>>619>>666も-Wall -Werrorは今時当たり前って言ってるんだけど、それが当たり前になったのっていつなの?
聞きたいのは、それが当たり前じゃなかったのはいつごろかってことなんだけど。
669デフォルトの名無しさん:2012/02/22(水) 22:32:48.74
-Werrorが当たり前ってどこの話?仕事?個人?
少なくともうちの会社でやってる世界では当たり前ではない
わけもなく警告を残すことはないが
670デフォルトの名無しさん:2012/02/22(水) 22:33:19.52
>>665
厳密にも間違えていないよ。
意図したものかどうかを確認したほうがいいと思ったから警告が出力されてるだけで。
671デフォルトの名無しさん:2012/02/22(水) 22:38:58.85
>>670
そだね。。すまぬ
672デフォルトの名無しさん:2012/02/22(水) 22:45:22.77
>>669
仕事でも個人でもだな。
残さないなら-Werrorで問題ないじゃん。
673デフォルトの名無しさん:2012/02/22(水) 22:48:31.48
よそから取り込んだので特にプラットフォーム非依存のコードなんかだと全部消すのが難しい事がある。
674デフォルトの名無しさん:2012/02/22(水) 22:51:54.53
消すのにコストかかる場合そのまま放置とかやる
増減しないよう数をチェックするけど
675デフォルトの名無しさん:2012/02/22(水) 22:52:20.10
あるね
676デフォルトの名無しさん:2012/02/22(水) 22:53:54.95
>>669
警告をちゃんとつぶそうとは周知されてるけど、設定はそうなっていないのが実情だったりするなぁ。
make最後まで走らせたくないから自分の環境ではWerrorを含めていろいろ追加してる。
Wall Werrorは当たり前だろ、って騒いでる人がほかに設定してるオプションとか知りたいね。
677デフォルトの名無しさん:2012/02/22(水) 23:03:45.21
間違ってなければ警告が残ってて何が悪いの?
コンパイラのためのプログラムを作ってるわけじゃあるまいし。
678デフォルトの名無しさん:2012/02/22(水) 23:11:34.31
小手先で無理やり消すくらいなら、環境変わったら問題が出そうな箇所として
マークしておく意味で残しておくのも有りかも。
679デフォルトの名無しさん:2012/02/22(水) 23:11:56.88
>>677
間違ってないことを確認する手間があるなら消すな。
みんなそれが確認できるレベルの人間だけで開発してるならいいんだけど、
確認できない低レベルも混じってるから-Werrorなんだよ。
680デフォルトの名無しさん:2012/02/22(水) 23:12:37.07
>>678
それは根本的にお前が間違ってる。
681デフォルトの名無しさん:2012/02/22(水) 23:14:29.90
>>680
せめて、何が間違ってるか言ってもらわんと。
今は職業プログラマーじゃないし、趣味ならどうでもいいわな。
682デフォルトの名無しさん:2012/02/22(水) 23:15:01.31
警告を残すのが間違っている。
683デフォルトの名無しさん:2012/02/22(水) 23:15:14.85
あ、ごめん。
684デフォルトの名無しさん:2012/02/22(水) 23:16:09.26
全然間違ってない。
コンパイラに合わせてコード書いてるんじゃないんだから。
685デフォルトの名無しさん:2012/02/22(水) 23:16:32.29
あっちのコンパイラでは大丈夫だけどこっちのコンパイラでは文句が出るってのもあるからねえ。
686デフォルトの名無しさん:2012/02/22(水) 23:16:52.15
警告には問題のない警告と問題のある警告が混じってるんだよね。
で、製品のプログラムなんかだと数百万行になるから適当に書かれて出る警告
をいちいちチェックなんてできないのよ。
だから-Werrorで警告の出るコードはコミットさせないってルールが普通なんだな。
687デフォルトの名無しさん:2012/02/22(水) 23:17:43.33
>>685
どのコンパイラでも出さないのが正解。
688デフォルトの名無しさん:2012/02/22(水) 23:18:20.31
プログラム書き始めて数年経つけど
未だにCの入出力が一目でわからない
%dとか
689デフォルトの名無しさん:2012/02/22(水) 23:18:55.37
>>688
それはわかろうとしないからでは?
690デフォルトの名無しさん:2012/02/22(水) 23:19:00.72
ageてしまった。申し訳ない
691デフォルトの名無しさん:2012/02/22(水) 23:19:13.46
>>686
あくまで君のところでの”普通”だね
それがどこでも普通だと思わないほうがよい
692デフォルトの名無しさん:2012/02/22(水) 23:19:13.99
void* に +1 したりしたいとき面倒だ
693デフォルトの名無しさん:2012/02/22(水) 23:20:02.68
>>691
まぁいいんだけど、それは自分のところは品質が低いんですって言ってるようなもんだな。
694デフォルトの名無しさん:2012/02/22(水) 23:20:24.82
普通とか常識とか語る奴の言うことは真に受けちゃダメ
これ常識wwwww
695デフォルトの名無しさん:2012/02/22(水) 23:20:34.35
>>687
コンパイラが変わるたびにコード修正するのか?
それはないな
696デフォルトの名無しさん:2012/02/22(水) 23:21:23.14
>>687
最初から、将来ターゲットになるかもしれない全部の環境で完全なコードとか書けないじゃん。

697デフォルトの名無しさん:2012/02/22(水) 23:21:24.08
-Werrorをつけないと警告の対処ができないようなところの製品ってどうなの
698デフォルトの名無しさん:2012/02/22(水) 23:21:45.18
>>689
全くもっておっしゃるとおり。
コード書く以上Cくらいスラスラ読めるべきだと思うんだけど
初めに触れたのがC++で、いつまでたってもCに慣れないという
ただの愚痴でごめんね
699デフォルトの名無しさん:2012/02/22(水) 23:22:49.17
>>695
もちろんコンパイラが変わるたびにコード修正するんだよ。
製品だと数年年に1回とかだけどな。
700デフォルトの名無しさん:2012/02/22(水) 23:22:53.22
でもまあ、新たに書くコードにわざわざ警告仕込むのは確かに間違ってるよ
701デフォルトの名無しさん:2012/02/22(水) 23:23:46.57
>>697
派遣とか委託はそんなレベルだよ。
702デフォルトの名無しさん:2012/02/22(水) 23:24:21.39
「-Werrorが普通」って言ってる人は根本を理解していない
ルールに溺れてないか心配になる
「警告を出さないコーディングをする」のが普通というのならわかる
703デフォルトの名無しさん:2012/02/22(水) 23:24:41.94
ああ、警告?もう一回ビルドすれば出てこなくなるよ^^
って人を何人も見かけてきた。それが職業プログラマ。
趣味プログラマのほうがきっちりしてることは多々あるよ。
704デフォルトの名無しさん:2012/02/22(水) 23:26:13.87
>>702
そうそう。
単にWerrorでバカよけをすればいいなんて考えは、警告さえ出なければいいって発想をされる危険をはらんでるよね。
705デフォルトの名無しさん:2012/02/22(水) 23:26:25.95
>>702
まぁそれは余計な心配だな。
お前はもっと自分の心配したほうがいいよ。
706デフォルトの名無しさん:2012/02/22(水) 23:26:58.80
>>704
委託とかだとあまり外から言えないからねぇ
707デフォルトの名無しさん:2012/02/22(水) 23:28:15.61
>>699
組み込みだと同じコードを年に何種類ものコンパイラでビルドするからねぇ
まあ警告なんてめったに出ないけど
708デフォルトの名無しさん:2012/02/22(水) 23:28:26.96
>>677, >>679
間違っているところが警告だけで通ってしまうとまずいからじゃん。
沢山の警告の中から、そういう致命的な警告をピックアップすることは人間には無理。
人間は必ず見落とす。だから-Werror
709デフォルトの名無しさん:2012/02/22(水) 23:29:54.99
主張してることはまあわかるが
バカ除けを何でもかんでも広めるのはやめていただきたい
バカ除けはバカがいるところだけで使ってればよい
710デフォルトの名無しさん:2012/02/22(水) 23:30:18.99
>>709
バカのはきだめで何を言ってるのやら。
711デフォルトの名無しさん:2012/02/22(水) 23:33:01.97
>>687
だね
いろいろあった例で言えば>>648ならどのコンパイラも文句言わない
712デフォルトの名無しさん:2012/02/22(水) 23:33:11.71
>>707
ミドルウェア系だとそうだね。
サポートするどの製品の環境でも警告出さないのが礼儀。
713デフォルトの名無しさん:2012/02/22(水) 23:35:19.97
なんか白熱してるな
まあすべて俺の自演だけど
714デフォルトの名無しさん:2012/02/22(水) 23:35:53.22
複数の環境で使うコードとか、#ifdef の有効範囲の違いで、unused variable とか出るだろ。
715デフォルトの名無しさん:2012/02/22(水) 23:36:20.15
>>714
出すのはバカだけ。
716デフォルトの名無しさん:2012/02/22(水) 23:36:30.27
そういえばプログラム板ってID出なかったっけ
久々に来たから忘れてるわ。
717デフォルトの名無しさん:2012/02/22(水) 23:38:27.27
>>702
あまいな、経験4,5年か?「致命的な結果につながる警告メッセージは
オレは絶対見逃さないぜ」なんて本気で思ってるのか?
718デフォルトの名無しさん:2012/02/22(水) 23:40:14.09
まぁコンパイラの警告消したところでチェッカーかけると何千個も警告出る
のも普通だしな。
ある製品で2,3千個確認したが実際に問題があったのは10個程度。
719デフォルトの名無しさん:2012/02/22(水) 23:42:36.01
>>717
-Werrorつけることには反対しないけど
警告さえ出なければ致命的な結果につながらない
と思うほうが危ない
720デフォルトの名無しさん:2012/02/22(水) 23:43:20.13
>>719
警告だから問題ないと思うよりはましだろ。
721デフォルトの名無しさん:2012/02/22(水) 23:45:52.35
ほんとに警告しか目に入ってないんだなw
722デフォルトの名無しさん:2012/02/22(水) 23:46:04.03
コンパイラ自体どんどん口うるさくなってきてるから、
古いコード引っ張り出してくるとやかましく言われる事があるな。
んで64bit環境に対応させるのに警告が頼りになったり。
723デフォルトの名無しさん:2012/02/22(水) 23:47:09.99
>>722
goto文を多用したコードが出てきたときの絶望感
724デフォルトの名無しさん:2012/02/22(水) 23:48:36.03
>>721
コンパイラやチェッカーなんてあまりあてにならないぞ。
直接ヤバそうなパターンを探して確認した方がバグはみつかる。
コンパイラの警告は最低限、チェッカーは重要なやつだけチェックするのが
現実的かな。
725デフォルトの名無しさん:2012/02/22(水) 23:49:21.17
MSコンパイラの _s 関数使えって警告は不要
726デフォルトの名無しさん:2012/02/22(水) 23:50:00.78
>>723
幸いにしてgoto文を多用したコードなんて30年来みたことがない。
727デフォルトの名無しさん:2012/02/22(水) 23:50:24.64
状態がラベルで遷移がgotoみたいな感じで、
ちょっとした字句解析やる事があります。ごめんなさい。
728デフォルトの名無しさん:2012/02/22(水) 23:51:20.87
>>719
逆とか対偶とか夜間中学で論理学習いなおした方がいいぞ。
お前本当にPGやってんの? ウソだろ、頼むウソだといってくれ、

お前の書いたプログラムにいつか遭遇するかもしれないと思うとたまらなく不安だ。
729デフォルトの名無しさん:2012/02/22(水) 23:52:13.00
また変なの、でてきた?
730デフォルトの名無しさん:2012/02/22(水) 23:53:32.35
>>727
まぁ気持ちはわかるけどstateとswitch/case使った方がいいね。
731デフォルトの名無しさん:2012/02/22(水) 23:53:35.12
上から目線のバカが涌いた
732デフォルトの名無しさん:2012/02/22(水) 23:56:26.34
>>730
そっちの方が読みにくくなるよ。
733デフォルトの名無しさん:2012/02/22(水) 23:56:48.02
ごめんなさい。
734デフォルトの名無しさん:2012/02/22(水) 23:57:22.91
つか、lexとか使えよ。
735デフォルトの名無しさん:2012/02/22(水) 23:58:11.20
>>728
気にしなくてもたぶんもう遭遇してるよ
736デフォルトの名無しさん:2012/02/22(水) 23:58:38.59
エスパーかw
一体どれにレスしてるんだ。
737デフォルトの名無しさん:2012/02/23(木) 00:01:25.60
> unused variable

関数ポインタの宿命だしな
Werror 君は見たことないらしいがw
738デフォルトの名無しさん:2012/02/23(木) 00:02:28.52
goto文
上手に使って
コーディング
おいしいスパゲティー
さあ召し上がれ
739デフォルトの名無しさん:2012/02/23(木) 00:02:44.67
おれは
-Wno-unused-parameter -Wno-unused-variable
はつけてるな。unused-variableは仕事ではNGだが。
740デフォルトの名無しさん:2012/02/23(木) 00:04:07.32
>>737
あ、ひょっとしてno-unused-parameter知らなかった?
741デフォルトの名無しさん:2012/02/23(木) 00:04:49.64
パスタが食いたくなってきた...
742デフォルトの名無しさん:2012/02/23(木) 00:05:04.13
わろたw
ついに警告が出るとエラーになるから警告を消しやがったw
743デフォルトの名無しさん:2012/02/23(木) 00:06:28.23
>>742
すまんが、関数ポインタの宿命ってのを教えてくれんか。
多分no-unused-parameterとは別のことを言ってるんだよな。
744デフォルトの名無しさん:2012/02/23(木) 00:08:47.01
/*not reached*/もちゃんとつけてる?
745デフォルトの名無しさん:2012/02/23(木) 00:10:39.69
なんだろうこの無駄な孤軍奮闘っぷり
746デフォルトの名無しさん:2012/02/23(木) 00:12:11.17
>>743
その脳なんたらってのが ISO/IEC 9899 のどの箇条を言っているのか見当が付かんが
「使われていない変数」と関数ポインタの関連性は教えてやらんから憶えてきな
747デフォルトの名無しさん:2012/02/23(木) 00:13:57.86
>>746
脳なんたらw
ISOを読む前に日本語を勉強してください。
748デフォルトの名無しさん:2012/02/23(木) 00:16:01.67
まぁ物事の良し悪しの判断もできないなら人の言うことだけ聞いてろってこったな。
749デフォルトの名無しさん:2012/02/23(木) 00:16:49.57
>>747
日本語より英語だけど、勉強するなら日本語からだなwww
750デフォルトの名無しさん:2012/02/23(木) 00:17:48.29
今時は関数ポインタに宿命とやらがあるのか。それは知らんかった
おい、>>742その宿命とやらを是非教えてくれ。頼む。
751デフォルトの名無しさん:2012/02/23(木) 00:19:31.32
おい>>742はやく教えろ。
752デフォルトの名無しさん:2012/02/23(木) 00:21:45.49
日本語のレスにアンカー貼って日本語憶えろはねえだろ、ばか?
753デフォルトの名無しさん:2012/02/23(木) 00:21:56.36
>>742いないのか?それとも本当は宿命なんてなかったのか?
754デフォルトの名無しさん:2012/02/23(木) 00:23:49.97
750=751=753 か
再読み込みしろよ
755742:2012/02/23(木) 00:23:56.08
教えてやらんつってんだろ、ばか?
756デフォルトの名無しさん:2012/02/23(木) 00:24:14.65
>>752
そんなことはいいから早く教えろ。
757デフォルトの名無しさん:2012/02/23(木) 00:24:16.29
>>744
NOTREACHED
FALLTHROUGH
www
758デフォルトの名無しさん:2012/02/23(木) 00:24:50.25
>>755
はい、バカ確定。
759デフォルトの名無しさん:2012/02/23(木) 00:25:06.53
>>734
大規模なのはlexつかってる。
760デフォルトの名無しさん:2012/02/23(木) 00:26:50.66
>>755
まあ聞かなくてもわかるけどなw
って言ってるのと同じレベルだなw
761デフォルトの名無しさん:2012/02/23(木) 00:26:55.17
>>758
おまえがな
やーい、わかんねーのw
762デフォルトの名無しさん:2012/02/23(木) 00:30:01.51
>>761
そんなにバカを自慢しなくてもいいのに。
763デフォルトの名無しさん:2012/02/23(木) 00:31:46.23
>>759
flexじゃなく?
764デフォルトの名無しさん:2012/02/23(木) 00:31:56.37
いや自慢してねえよ、アフォにしてるんだよ

おい乞食、煽りそこなったら潮時をわきまえろ
無駄な努力だぜ
765デフォルトの名無しさん:2012/02/23(木) 00:32:52.62
そうだそうだ
766デフォルトの名無しさん:2012/02/23(木) 00:33:41.95
おまえら、ばかばか言い合ってるだけで、まったく何も生み出してない
これを不毛という
767デフォルトの名無しさん:2012/02/23(木) 00:34:39.53
量産できるのはゴミレスだけさ
768デフォルトの名無しさん:2012/02/23(木) 00:34:52.39
ハゲちゃう。
769デフォルトの名無しさん:2012/02/23(木) 00:35:13.97
ヘボです。
770デフォルトの名無しさん:2012/02/23(木) 00:36:29.09
このスレももう潮時だな
771デフォルトの名無しさん:2012/02/23(木) 00:37:00.18
このスレももう潮時だな(キリッ
772デフォルトの名無しさん:2012/02/23(木) 00:37:12.70
>>770
はい、さようなら。
773デフォルトの名無しさん:2012/02/23(木) 00:39:48.23
そうだそうだ
774デフォルトの名無しさん:2012/02/23(木) 00:40:11.84
ばかじゃねえの
775デフォルトの名無しさん:2012/02/23(木) 00:40:29.91
ばかじゃねえよはげだよ
776デフォルトの名無しさん:2012/02/23(木) 00:40:30.34
お前がな。
777デフォルトの名無しさん:2012/02/23(木) 00:40:54.75
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
778デフォルトの名無しさん:2012/02/23(木) 00:41:13.65
はげはげいうんじゃねえよ
779デフォルトの名無しさん:2012/02/23(木) 00:42:54.02
うるせーはげ
780デフォルトの名無しさん:2012/02/23(木) 00:43:12.25
不毛
781デフォルトの名無しさん:2012/02/23(木) 00:43:31.28
はげはげいうんじゃねえよ(泣)
782デフォルトの名無しさん:2012/02/23(木) 00:44:16.93
結局関数ポインタの宿命ってなんだったの?
関数によっては不要な引数があるよってだけ?
783デフォルトの名無しさん:2012/02/23(木) 00:45:55.05
>>782
そうとも違うとも答えてやらんw
784デフォルトの名無しさん:2012/02/23(木) 00:46:01.58
別に引数なら省略すればいいだけだし、なんなんだろうね。
おれも知りたい。
785デフォルトの名無しさん:2012/02/23(木) 00:46:43.82
こいつ>>783おっさんが拗ねてるみたいで気持ち悪いな。
786デフォルトの名無しさん:2012/02/23(木) 00:47:08.30
ぷんぷんっ
787デフォルトの名無しさん:2012/02/23(木) 00:47:11.33
おれもおれも
788デフォルトの名無しさん:2012/02/23(木) 00:50:35.02
やっぱりバカ確定でFA?
789デフォルトの名無しさん:2012/02/23(木) 00:51:20.37
なんでそんなにバカということにしたがるんだろう
790デフォルトの名無しさん:2012/02/23(木) 00:52:31.19
バカじゃないふりをするからじゃない?
791デフォルトの名無しさん:2012/02/23(木) 00:53:33.41
うるせーバカ
792デフォルトの名無しさん:2012/02/23(木) 00:53:45.70
聞いてるほうも答えないほうもどっちもただのバカなのにな
793デフォルトの名無しさん:2012/02/23(木) 00:54:16.96
>>784
今日一日粘着してたぼけの暴れ方見てみな
なんなのかはわかるだろうぜ
794デフォルトの名無しさん:2012/02/23(木) 00:54:37.06
>>784引数を省略ってどういうこと?
795デフォルトの名無しさん:2012/02/23(木) 00:55:39.95
昔よりも上達したな
あと200ちょいで1000いくぞ
796デフォルトの名無しさん:2012/02/23(木) 00:56:26.95
そもそも今時関数ポインタなんてほとんど使わないしなぁ。
797デフォルトの名無しさん:2012/02/23(木) 00:56:39.88
うんこ
798デフォルトの名無しさん:2012/02/23(木) 00:57:42.44
>>794
使わない変数は書かなきゃいいんだよ。
でもそうすると引数の意味がわかりにくいから書きたい。
なのでno-unusedを使うわけ。
799デフォルトの名無しさん:2012/02/23(木) 00:58:23.24
うんこ
800デフォルトの名無しさん:2012/02/23(木) 01:01:01.20
>>798
わからんからコードで例を
801デフォルトの名無しさん:2012/02/23(木) 01:01:27.61
くさい
802デフォルトの名無しさん:2012/02/23(木) 01:02:38.83
>>800
宿命が何かわかったら書いてやるよwww
803デフォルトの名無しさん:2012/02/23(木) 01:02:39.48
>>798
あれ、きみは Werror 君? その話とは違うぞ、ばかだなあw
804デフォルトの名無しさん:2012/02/23(木) 01:03:27.35
>>803
だから>>784と書いてるんだろ、ヘボ。
805デフォルトの名無しさん:2012/02/23(木) 01:05:37.35
てめーら全員トリップつけやがれたこ野郎ども
806デフォルトの名無しさん:2012/02/23(木) 01:05:52.01
>>804
意味わかんねーぞ低脳
807デフォルトの名無しさん:2012/02/23(木) 01:06:31.21
>>805
アンカーついてるのさえ読めないんだからつけても意味ないんじゃね?
808デフォルトの名無しさん:2012/02/23(木) 01:15:01.93
お前ら全員鼻毛抜いて出直してこい
809デフォルトの名無しさん:2012/02/23(木) 01:16:07.83
抜くより切った方がいいぞ
810デフォルトの名無しさん:2012/02/23(木) 01:16:14.88
なみだちょちょぎれるからやだ
811デフォルトの名無しさん:2012/02/23(木) 01:16:28.73
Werror と Warrior ってなんか似てるね!
812デフォルトの名無しさん:2012/02/23(木) 01:17:04.12
特に鼻の穴直近に生えてる短い小作農どもを抜いたときの痛さは異常
813デフォルトの名無しさん:2012/02/23(木) 01:21:13.42
宿命はよ
814デフォルトの名無しさん:2012/02/23(木) 01:21:37.73
ない。以上。
815デフォルトの名無しさん:2012/02/23(木) 01:25:28.57
宿命はよはよ
816デフォルトの名無しさん:2012/02/23(木) 01:26:13.96
ないない。以上。
817デフォルトの名無しさん:2012/02/23(木) 01:27:23.37
これもまた宿命
818デフォルトの名無しさん:2012/02/23(木) 01:27:45.57
運命宿命だれのせい
819デフォルトの名無しさん:2012/02/23(木) 01:28:28.30
That's the destiny.
820デフォルトの名無しさん:2012/02/23(木) 01:28:44.06
-Werror すっかりトーンダウンしたなw
821デフォルトの名無しさん:2012/02/23(木) 01:29:09.39
もちろん>>742のせい
822デフォルトの名無しさん:2012/02/23(木) 01:29:21.74
-Werrorなんぞ、つけたいやつはつけときゃいいんだよ
つけることが目的じゃなくてバグゼロが目的だろ
823デフォルトの名無しさん:2012/02/23(木) 01:31:24.50
手段は問わん、成果を出せ
以上

って言われておしまい
824デフォルトの名無しさん:2012/02/23(木) 01:32:31.97
宿命はよ
825デフォルトの名無しさん:2012/02/23(木) 01:37:43.22
>>822
それが目的だからつけるんだろ。
バグ0とか今時無理ゲーだけどな。
826デフォルトの名無しさん:2012/02/23(木) 01:38:34.85
手段が目的に変わる好例だな
デスマ乙
827デフォルトの名無しさん:2012/02/23(木) 01:40:19.39
誰得
お前ステマ言いたいだけやろ。
828デフォルトの名無しさん:2012/02/23(木) 01:41:19.02
×ステマ
○デスマ
829デフォルトの名無しさん:2012/02/23(木) 01:41:22.44
宿命はよ
830デフォルトの名無しさん:2012/02/23(木) 01:45:21.72
831デフォルトの名無しさん:2012/02/23(木) 01:46:04.33
僕はclangちゃん!
832デフォルトの名無しさん:2012/02/23(木) 01:46:25.21
-Werror も脳なんたらもこだわったところでしょせんローカルってとこわかったか、ばか
833デフォルトの名無しさん:2012/02/23(木) 01:46:33.65
Fortify
834デフォルトの名無しさん:2012/02/23(木) 01:47:18.83
>>832
メジャーだろうがマイナーだろうが結果が全てなんだよ
835デフォルトの名無しさん:2012/02/23(木) 01:48:02.78
ローカルの反対はグローバルだろjk
836デフォルトの名無しさん:2012/02/23(木) 01:48:06.83
そうだそうだ
837デフォルトの名無しさん:2012/02/23(木) 01:49:48.66
>>832
おまえがローカルという言葉をグローバルの対義の意味で使ってないからだろ
838デフォルトの名無しさん:2012/02/23(木) 01:51:51.04
その通りその通り
839デフォルトの名無しさん:2012/02/23(木) 01:51:59.89
>>830
こういうやつが一番たちの悪いバグを仕込むんだよな。
840デフォルトの名無しさん:2012/02/23(木) 01:53:39.34
>>837
グローバル? 変数の話でもしているつもりだったのか?
俺は ISO とは言った、そして突然 K&R C の話をしだした Werror 君の発狂ぶりに驚いている
841デフォルトの名無しさん:2012/02/23(木) 01:54:24.67
どこにK&Rが?
842デフォルトの名無しさん:2012/02/23(木) 01:55:03.89
そうだそうだ、どこにあるんだ
843デフォルトの名無しさん:2012/02/23(木) 01:58:37.67
妄想乙。
って感じ?
844デフォルトの名無しさん:2012/02/23(木) 01:59:17.58
そういう基本的なことは確認してから来い
845デフォルトの名無しさん:2012/02/23(木) 02:00:55.57
宿命はよ
846デフォルトの名無しさん:2012/02/23(木) 02:01:43.71
海はよー 海はよー オヤジの海はよー
847デフォルトの名無しさん:2012/02/23(木) 02:02:50.88
このころ、>>845
「宿命はよ」と永遠書き込み続ける宿命にあるということに
まだ気づく由もなかったのである
848デフォルトの名無しさん:2012/02/23(木) 02:03:31.29
で、どこにK&Rが?
849デフォルトの名無しさん:2012/02/23(木) 02:03:35.19
気づいてない気づいてない
850デフォルトの名無しさん:2012/02/23(木) 02:05:32.84
もう限界
今日は落ちるぞ
851デフォルトの名無しさん:2012/02/23(木) 02:11:58.11
まだ寝ないでよー
852デフォルトの名無しさん:2012/02/23(木) 02:24:02.82
宿命とK&Rはよはよ
853デフォルトの名無しさん:2012/02/23(木) 07:02:56.95
>>800
>>798が言ってるのは変数名をつけるかどうかってこと。
854デフォルトの名無しさん:2012/02/23(木) 07:03:27.23
ちなみに宿命については俺もわからん
855デフォルトの名無しさん:2012/02/23(木) 07:11:48.67
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>
856デフォルトの名無しさん:2012/02/23(木) 08:03:27.34
なるほど、発生していることにしたいわけですね。
857デフォルトの名無しさん:2012/02/23(木) 08:37:38.81
起きたら、-Werrorに反論できなくなったバカがマトボッククリを持ち出しててワロタ。
858デフォルトの名無しさん:2012/02/23(木) 10:41:24.30
この言語で普段何を作ってる?
ここの人は仕事でのみ
859デフォルトの名無しさん:2012/02/23(木) 10:55:46.54
警告全部取りたい奴がいたら、止めはしないがな。
俺は御免って感じ。
アホみたいに、コンパイラのメーカーに問い合わせしてまで取るとか。
ご苦労様。
860デフォルトの名無しさん:2012/02/23(木) 11:13:02.97
どっからそんな話が出てきたんだよw

コンパイラの不具合なら問い合わせるの当然だろ。
861デフォルトの名無しさん:2012/02/23(木) 11:24:06.54
重要な仕事なら、出来るだけ品質担保が欲しい、というのは当然だな。
趣味レベルなら個人の好き好きでやればいいこと。
862デフォルトの名無しさん:2012/02/23(木) 11:40:03.59
てか、普通にコーディングしてたら警告なんてほとんど出ないでしょ。
なんでそんな拘るのかねぇ、いろいろ捗るのに。
863デフォルトの名無しさん:2012/02/23(木) 11:46:02.87
警告表示したら何百も何千も表示されて、自分が気づいていない修正すべき警告に気づかないか、
少し手間がかかるが警告無しのコーディングをして、自分が気づいていない修正すべき警告をコンパイラに教えて貰うか、
どっちでも好きなように。
864デフォルトの名無しさん:2012/02/23(木) 11:50:16.30
>>859
> アホみたいに、コンパイラのメーカーに問い合わせしてまで取るとか。
コンパイラメーカーに問い合わせしなきゃとれない警告ってどんなの?

もしかすると、それが「関数ポインタの宿命」ってやつ? www
865デフォルトの名無しさん:2012/02/23(木) 12:51:27.47
スレが進みすぎててワロタ
元気だなおまえら、仕事は大丈夫なのか?w
866デフォルトの名無しさん:2012/02/23(木) 13:03:29.66
うん
867デフォルトの名無しさん:2012/02/23(木) 15:48:49.63
(アカン)
868デフォルトの名無しさん:2012/02/23(木) 16:09:13.45
そうやってすぐなんJとかに影響されるのよくないと思います!
869デフォルトの名無しさん:2012/02/23(木) 16:39:23.24
新規に書くコードは基本的に警告でないように核よ。
よそからもってきたのとか古のコードは必要もないのに手を入れたくないから
本当に問題のある部分だけしか直さないけど。
870デフォルトの名無しさん:2012/02/23(木) 17:56:57.79
>>865
傷病手当だぉw
871デフォルトの名無しさん:2012/02/23(木) 18:44:01.56
昔は社畜としてバリバリ仕事をしたもんだが、膝に矢を受けてしまってな
872デフォルトの名無しさん:2012/02/23(木) 18:50:06.77
つまりアロー演算子で挫折したのか
873デフォルトの名無しさん:2012/02/23(木) 19:45:55.67
へえ
874デフォルトの名無しさん:2012/02/24(金) 02:21:39.35
入門スレで喧嘩を始めるゴミどもw
875デフォルトの名無しさん:2012/02/24(金) 04:59:39.64
そうだそうだ
876デフォルトの名無しさん:2012/02/24(金) 06:27:10.49
宿命はよ
877デフォルトの名無しさん:2012/02/24(金) 08:14:00.41
宿便はよでろ
878デフォルトの名無しさん:2012/02/24(金) 08:19:09.22
お、うんこと言えばQZ、
お前ならわかるんじゃないか?宿命。
879デフォルトの名無しさん:2012/02/24(金) 09:13:36.79
月曜からの分を纏めて読んだらもよおした。宿便出してくる。
880デフォルトの名無しさん:2012/02/24(金) 09:44:32.18
881デフォルトの名無しさん:2012/02/24(金) 10:27:08.58
関数ポインタの宿命だろ。
882デフォルトの名無しさん:2012/02/24(金) 12:15:07.84
うん
883デフォルトの名無しさん:2012/02/24(金) 14:15:09.03
すみません、くそ初心者なのですが
#include <stdio.h>
int min_of(const int vc[],int no)
{
int i;
int min=vc[0];
for(i=1;i<no;i++)
if(min>vc[i])
min=vc[i];
return(min);
}
int main(void)
{
#define NUMBER 5
int main (void)
{
int c[NUMBER];
int j,min;
printf("%dつの整数を入力してください",NUMBER);
for(j=0;j<NUMBER;j++){
printf("整数%d:",j+1);
scanf("%d",&c[j]);
}
min=min_of(c,NUMBER);
printf("最小値は%dです。\n",min);
return(0);
}
のエラーの原因を教えてください。
884デフォルトの名無しさん:2012/02/24(金) 14:19:07.31
エラーメッセージをコピペしろとママに教わらなかったのか?
885デフォルトの名無しさん:2012/02/24(金) 14:21:11.64
>>884
すみません。
list0607.c: In function `main':
list0607.c:26: error: syntax error at end of input
です。
886デフォルトの名無しさん:2012/02/24(金) 14:23:47.18
>>885
int main(void)
{

が二つあるのはなぜだ?
887デフォルトの名無しさん:2012/02/24(金) 14:25:16.00
そのままコピペしたと仮定すると

 int main(void)
 {

を2回書いてる

 return(min);
 }
 int main(void)       ←!!!
 {               ←!!!
 #define NUMBER 5
 int main (void)
 {
888デフォルトの名無しさん:2012/02/24(金) 14:28:01.91
>>886
>>887
あ!!!しくじった…
ほんとだ、もう一回一から出直してきます。
こんなくそミスですいません。
889デフォルトの名無しさん:2012/02/24(金) 14:30:45.09
ドンマイ。関数ポインタの宿命だから。
890デフォルトの名無しさん:2012/02/24(金) 15:32:33.23
宿命はよ
891デフォルトの名無しさん:2012/02/24(金) 15:33:37.31
そうだそうだ
はよはよ
892デフォルトの名無しさん:2012/02/24(金) 15:51:42.18
ほっほっ
893単細胞向けの言語:2012/02/24(金) 17:53:43.51
C言語がコピペーの文化になっている件
894デフォルトの名無しさん:2012/02/24(金) 17:59:00.72
コピペすんのと標準関数なりを流用するのは
なんか違うことなの?
コピペの手間省いてくれるのが標準関数なんじゃねーの?
なんのためにJavaとかにあんだけのクラスあると思ってんの?
perlのクソ大量のモジュールはコピペ専用機能だろ?

お前アホの根性論主義者だからさ、
一生プログラミングには近づくなよ
業界のクズで癌で便器だからさ、
消えろよバカ
895デフォルトの名無しさん:2012/02/24(金) 18:00:08.06
そんなことより宿命はよ
896デフォルトの名無しさん:2012/02/24(金) 18:02:15.72
コピペ―が関数ポインタの宿命だから。
897デフォルトの名無しさん:2012/02/24(金) 18:09:09.57
こういう絶対に動くはずのないコピペーがたまたま動いちゃうとか
でてくるのが怖すぎる
898デフォルトの名無しさん:2012/02/24(金) 18:13:37.86
関数ポインタの宿命ですから。
899デフォルトの名無しさん:2012/02/24(金) 18:14:02.22
宿命だからしょうがない
900デフォルトの名無しさん:2012/02/24(金) 18:20:23.29
そうだそうだ
901デフォルトの名無しさん:2012/02/24(金) 18:26:28.33
こういうありえない行為が偶然に動いてしまうことがある
902デフォルトの名無しさん:2012/02/24(金) 19:07:29.57
あるね
903デフォルトの名無しさん:2012/02/24(金) 20:40:23.05
あるある
904デフォルトの名無しさん:2012/02/25(土) 00:00:59.22
(unsigned char *)0xfffc2

unsigned char 0xfffc2

このふたつって同じ「0xfffc2番地の8ビットデータ」という
意味ではないのでしょうか
違いがわからないです
905デフォルトの名無しさん:2012/02/25(土) 00:02:55.22
上: コンパイル通る
下: シンタックスエラー
という大きな違いがある。
906904:2012/02/25(土) 00:15:52.59
解説書もう一度目通したら理解できました
早とちりですみません
907デフォルトの名無しさん:2012/02/25(土) 00:28:31.83
グローバル変数にstaticつけても意味はない
908デフォルトの名無しさん:2012/02/25(土) 00:29:50.67
急に何を言い出したんだ
909SCHEME餃子 ◆8X2XSCHEME :2012/02/25(土) 00:51:05.23
>>907
内部リンケージになるでよ。
910デフォルトの名無しさん:2012/02/25(土) 01:02:52.95
>>909
まだ分割コンパイルできないんだ。わかってやれよ。
911デフォルトの名無しさん:2012/02/25(土) 01:17:23.15
stdin
stdout
errno
のように最初から使える変数がありますが、
これらはグローバル変数ですか?
912デフォルトの名無しさん:2012/02/25(土) 01:19:02.80
そうだよ。
913デフォルトの名無しさん:2012/02/25(土) 01:21:07.58
ありがとうございます!
初心者本でグローバル変数は危険、みたいな知識を植えつけられていたのでちょっと違和感でした。
914デフォルトの名無しさん:2012/02/25(土) 01:30:13.59
極力スコープは狭めるべきであって、
グローバル変数は不用意に使わないのがよい、とは言われるが
使ってはいけないものではない
グローバルに必要なものは当然グローバル変数とするのが妥当なことも多い
915デフォルトの名無しさん:2012/02/25(土) 02:01:26.61
>>913
ちゃんと設計できる人ならグローバル変数を頻繁(正しく)に使う。
916デフォルトの名無しさん:2012/02/25(土) 02:03:57.23
ちゃんと設計できる人ならグローバル変数を極力使わない方法で実装する。
917デフォルトの名無しさん:2012/02/25(土) 02:07:16.24
ファイルスコープの変数はそれなりに使う。
918デフォルトの名無しさん:2012/02/25(土) 02:54:54.90
>>915
言いたいことはわかる。
わかるが、グローバル変数を使うことをためらわない、の間違いではないか?
919デフォルトの名無しさん:2012/02/25(土) 04:16:13.37
ちゃんと設計できる人なら goto を頻繁に使う。
920デフォルトの名無しさん:2012/02/25(土) 05:04:26.95
そうだそうだ
921デフォルトの名無しさん:2012/02/25(土) 05:07:23.01
宿命はよ
922UFCサプライ:2012/02/25(土) 05:10:24.47
ポインタがわかんねえええええええええええええええええええええええええええええ
前橋の本読んでもわかんねええええええええええええええええええええええええええ
923デフォルトの名無しさん:2012/02/25(土) 05:21:05.77
いまどきCは何処でも変数宣言が出来るんだから
ポインタを全部const で使えばこんがらがる事は無いと思うんだがな
924デフォルトの名無しさん:2012/02/25(土) 05:55:36.24
全部constつけろとか、お前全然理解してないなw
925デフォルトの名無しさん:2012/02/25(土) 08:10:19.46
#include <stdio.h>
int index_of(char *p, int c, int *s) {
  int mark;
  int i = 0;

  while(*p != '\0') {
    if(*p == c) {
      mark = i;
    }

    ++i;
    ++p;
  }

  *s = i; /* string length */
  return mark;
}

int main(void) {
  const char c[] = "922 UFC 2012/02/25( ) 05:10:24.47";
  const int NOT_FOUND = -1;
  int place, string_length;

  place = index_of( (char *)&c[0], 'U', &string_length); /* index of 'U' */
  if(place != NOT_FOUND) {
    printf("index of 'U' = %d\nstring length = %d\n", place, string_length);
  }

  return 0;
}
926925:2012/02/25(土) 08:31:52.89
#include <stdio.h>
int index_of(char *p, int c, int *s) {
  int mark = -1;
  int i = 0;

  while(*p != '\0') {
    if(*p == c) {
      mark = i;
    }

    ++i;
    ++p;
  }

  *s = i; /* string length */
  return mark;
}

int main(void) {
  const char c[] = "922 UFC 2012/02/25( ) 05:10:24.47";
  const int NOT_FOUND = -1;
  int place, string_length;

  place = index_of( (char *)&c[0], 'x', &string_length); /* index of 'U' */
  if(place != NOT_FOUND) {
    printf("index of 'U' = %d\nstring length = %d\n", place, string_length);
  }

  return 0;
}
927デフォルトの名無しさん:2012/02/25(土) 09:14:06.98
関数ポインタでハマる人はハマる
928デフォルトの名無しさん:2012/02/25(土) 09:33:14.82
>>927
宿命!?
929デフォルトの名無しさん:2012/02/25(土) 09:37:47.54
いいえ、運命です!!
930デフォルトの名無しさん:2012/02/25(土) 09:46:54.27
宿命はよ
931デフォルトの名無しさん:2012/02/25(土) 10:29:04.14
>>922
いいじゃん。C#とかjava,delphi,VBとかいろいろあるじゃん。
君の将来は明るいよ。
932デフォルトの名無しさん:2012/02/25(土) 10:43:50.45
Delphiはポインタあるだろ、このヘボが。
933デフォルトの名無しさん:2012/02/25(土) 10:44:04.21
934デフォルトの名無しさん:2012/02/25(土) 11:02:03.26
>>913
stdin, stdoutあたりはともかく、errnoは失敗だからマネすんなよ。
935デフォルトの名無しさん:2012/02/25(土) 12:36:20.14
扱ってるコードに
setCameraDistance(btScalar(SCALING*50.));
というのがあったんですが、
50の右の . ってプログラム上の作用はないすですよね?
小数点以下のない整数だという意味を強調して
書かれているのでしょうか?
あとbtっていうプレフィックスって何ですか?
936デフォルトの名無しさん:2012/02/25(土) 12:45:50.19
あるよ。50はint、50.はdouble
937デフォルトの名無しさん:2012/02/25(土) 12:50:44.43
>>935
btScalar()がプロトタイプなしでコールされていて、SCALINGが整数だったら挙動が違ってくるな。
普通はプロトタイプありだから、結果、. はあってもなくても同じになるな。
938デフォルトの名無しさん:2012/02/25(土) 12:56:56.47
SCALING*50がintの範囲をちょうど超えるくらいだと
.つけるつけないで変わるんじゃね
939デフォルトの名無しさん:2012/02/25(土) 13:04:59.98
>>937-938
回答ありがとうございます。
そもそも数字の後につく . には、どのような意味があるのでしょうか?
付けるとfloat扱いになるとか?
940935:2012/02/25(土) 13:11:43.87
>>935
btの意味は使っているライブラリ(bullet)由来でした
941デフォルトの名無しさん:2012/02/25(土) 13:12:07.28
errno って失敗なの?
スレッド別変数がサポートされてる必要があるけど、すごい使いやすいと思うのに
942デフォルトの名無しさん:2012/02/25(土) 13:12:51.88
>>939
つけるとdoubleになる。
943デフォルトの名無しさん:2012/02/25(土) 13:13:37.97
なるね
944デフォルトの名無しさん:2012/02/25(土) 13:15:35.82
>>941
C以降のメジャーな言語でエラーの種類をグローバル変数で返してるのってないから、
使いやすいって思ってるのは小数派なのでは?
945デフォルトの名無しさん:2012/02/25(土) 13:25:09.88
>>942
ありがとうございました。
946デフォルトの名無しさん:2012/02/25(土) 13:56:40.58
>>945
いえいえ
947デフォルトの名無しさん:2012/02/25(土) 14:31:57.22
他に例が無いから良くないとは
なんとまぁ浅はかな
948デフォルトの名無しさん:2012/02/25(土) 14:34:31.04
こき下ろすだけで自分の意見は怖くて絶対に言えない臆病者登場
949デフォルトの名無しさん:2012/02/25(土) 14:38:57.38
うるさいしねや
950デフォルトの名無しさん:2012/02/25(土) 14:42:21.74
そうだそうだ
951デフォルトの名無しさん:2012/02/25(土) 14:50:31.77
>>944
そうかな?ああ、GetLastError などで間接的に取得してるのも含めて考えてたすまない
WinAPI の GetLastError、VB の Err、PHP/MySQL の mysql_error、…
まあ最近は例外が主力なのかなぁ
952デフォルトの名無しさん:2012/02/25(土) 14:52:15.24
xcbのxcb_connection_tってどこで定義されてます?
953デフォルトの名無しさん:2012/02/25(土) 14:57:20.32
>>951
VBとかPHPで使われてるって聞くと、よけいセンスのない方法なんだなって印象になるな。
954デフォルトの名無しさん:2012/02/25(土) 15:02:56.17
>>953
VBはよく知らんがPHPはlibcのラッパーだから
955デフォルトの名無しさん:2012/02/25(土) 15:06:22.03
>>952
見つけました。
956デフォルトの名無しさん:2012/02/25(土) 16:40:08.49
>>954
Cの方式を踏襲してるんだろうな。
errno方式を採用してるのって、Cかそれの影響を受けたOSやライブラリかもしくはVB。
あんまり現代的ではないな。
957デフォルトの名無しさん:2012/02/25(土) 17:00:09.69
>>956
うん
958デフォルトの名無しさん:2012/02/25(土) 19:58:42.32
#include <stdio.h>

int main(void)
{
int i=0;

printf("%d,%d,%d,%d,%d",i);

return 0;

}
959デフォルトの名無しさん:2012/02/25(土) 21:04:58.58
OSが無かった時代でも、パソコンに標準装備されている開発環境って
あったんですか?例えばCとか。
960デフォルトの名無しさん:2012/02/25(土) 21:08:58.60
getoptを使ったオプション付きのコマンドライン引数の処理を
windos上でVCで作ったC言語のプログラムで実現したいんですけど
getoptに変わる処理としてはどうやるのが定石ですか
961デフォルトの名無しさん:2012/02/25(土) 21:14:46.15
getopt Windows
で検索
962デフォルトの名無しさん:2012/02/25(土) 21:23:21.77
仕事のプログラムなのでgnuは使えません
963デフォルトの名無しさん:2012/02/25(土) 21:35:25.67
普通の社畜養成場なら
そこらへんのライブラリはひとそろいあるんじゃネーノ?
そうじゃあないソフト会社なんてクソだぞ?

それともお前はぶられてるから
そのライブラリ先輩とかに貰ってないとか……
そういう悲しい事情でもあんの?
964デフォルトの名無しさん:2012/02/25(土) 21:40:20.99
gnu互換のgetoptつかえ
965デフォルトの名無しさん:2012/02/25(土) 21:43:25.42
Command line options parser for Win32: getopt
http://www.pwilson.net/sample.html

getopt for windows
http://note.sonots.com/Comp/CompLang/cpp/getopt.html
966デフォルトの名無しさん:2012/02/25(土) 21:50:48.74
>>959
ROM BASICというのがあった。
967デフォルトの名無しさん:2012/02/25(土) 21:53:13.51
ポインタと文字列についてお聞きしたいのですが
#include <stdio.h>

int main()
{

char s[ ] = "AB";
char *p = "12";

printf ("%s",s);
printf ("%s",p);

return 0;
}

このときC言語のルールとして

ルール1、文字列リテラルを評価すると先頭文字へのポインタとなる。

つまりこういうことでしょうか? char s[ ] = &'A';

ルール2、添字演算子[ ]なしの配列はその先頭へのポインタとなる。

つまりこういうことでしょうか? printf ("%s",&'1');



それとポインタは printf ("%s",*p); みたいに * がないと、エイリアスにならないと思うのですが
プログラム自体はあっています、すみませんがしくみというかこういう理解で合っているのかどなたか教えてください
968デフォルトの名無しさん:2012/02/25(土) 21:54:17.43
>>967
両方間違ってる
969デフォルトの名無しさん:2012/02/25(土) 22:01:43.12
> ルール1、文字列リテラルを評価すると先頭文字へのポインタとなる。
違う。
> char s[ ] = "AB";
= の右は初期化子と呼ばれていて通常の式ではない。

> ルール2、添字演算子[ ]なしの配列はその先頭へのポインタとなる。
これも違う。ポインタではなくアドレス。
ポインタならばa = NULL;が許される。
970デフォルトの名無しさん:2012/02/25(土) 22:02:39.94
char s[ ] = "AB";
書き換え可能な領域にAB\0が確保されてその先頭アドレスがsにセットされる

char *p = "12";
書き換え不可能なReadOnlyの領域に12\0が確保されてその先頭アドレスがpにセットされる

コンパイラの人がそうやると決めてやってるからとしか
971デフォルトの名無しさん:2012/02/25(土) 22:03:43.20
int main (void){
int i = 0 ;
for (;i<7;i++) {
printf ("%c ", "abcdefg"[i]) ;
}
}


こういうクソまみれのコードも書ける
972デフォルトの名無しさん:2012/02/25(土) 22:05:15.19
>>970
先の方ちげーよ
973デフォルトの名無しさん:2012/02/25(土) 22:09:26.54
>>967
ルール1,ルール2とも文章自体はあっているぞ。

>ポインタではなくアドレス。
C言語的には「アドレス」などという概念は無い。
(その割には単項&演算子はアドレス演算子などと呼ばれたりするが、、、)

>ポインタならばa = NULL;が許される。
これは単に配列が代入可能な左辺値ではないからでしょ。
974デフォルトの名無しさん:2012/02/25(土) 22:09:57.08
>>968>>969>>970どうもありがとうございます、すみません理解が遅く
まずルール1は初期化なので代入ではないから、
評価されないという理解で正しかったでしょうか
975デフォルトの名無しさん:2012/02/25(土) 22:11:15.60
> C言語的には「アドレス」などという概念は無い。
珍説ktkr
976デフォルトの名無しさん:2012/02/25(土) 22:11:53.93
>>970
sは配列で、何かがセットされるものじゃない。
977デフォルトの名無しさん:2012/02/25(土) 22:13:08.11
>>967

ルール1,ルール2の文章は合っているが、その解釈が間違いすぎていて
訂正もしようがない。

>それとポインタは printf ("%s",*p); みたいに * がないと、エイリアスにならないと思うのですが
エイリアスという言葉を、どういう意味で使用しているかわかりませんが、
サンプルコードで言えば
printf ("%s",p);で合っていますよ。
%sに対応する変数の型はchar *で、かつNUL文字で終端されている必要があります。
978デフォルトの名無しさん:2012/02/25(土) 22:15:34.24
>>974
文法書を読むことを勧める

char a[] = "abc":

char a[] = {'a', 'b', 'c', 0};
と同じ。初期化は式はなくこういう記述もできる。
979デフォルトの名無しさん:2012/02/25(土) 22:16:22.25
んじゃあ配列のための領域が確保されたあとにそこにAB\0がセットされるで満足か
980デフォルトの名無しさん:2012/02/25(土) 22:20:40.47
>>973>>977>>978すみません丁寧にありがとうございます、理解が悪いのでみなさんからいただいたレスをゆっくり見て
ひとまずもっと考えてみます、どうもありがとうございます
981デフォルトの名無しさん:2012/02/25(土) 22:24:34.98
>>980
いえいえ
982デフォルトの名無しさん:2012/02/25(土) 22:27:30.33
char a[] = "abc"; だと文字列がスタックに置かれる。
983デフォルトの名無しさん:2012/02/25(土) 22:28:04.36
宿命はよ
984デフォルトの名無しさん:2012/02/25(土) 22:28:33.29
>>982
どっちも同じ。
985デフォルトの名無しさん:2012/02/25(土) 22:28:38.57
グローバル変数もスタック消費するんだ知らなかったなあ
986デフォルトの名無しさん:2012/02/25(土) 22:31:14.89
>>984
char *a = "abc"; と比べての話。
987デフォルトの名無しさん:2012/02/25(土) 22:32:03.16
同じなのは>>978な。
それからchar *p = "12"はグローバル変数じゃないから。
988デフォルトの名無しさん:2012/02/25(土) 22:32:30.17
コンパイラが出すコード見たことないと>>982のような不用意な発言するよね。
質問者がクローズ宣言してるんだからわざわざ出しゃばらなくてもいいのに。
989デフォルトの名無しさん:2012/02/25(土) 22:33:19.75
いや、それはスタックに置かれるだろ。
990デフォルトの名無しさん:2012/02/25(土) 22:33:40.82
もちろん、関数の中ならな。
991デフォルトの名無しさん:2012/02/25(土) 22:33:56.55

              「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得

                                ↓

     「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する

                                ↓

「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得

                                ↓

      「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ

                                ↓

           「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター

                                ↓

       「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する

                                ↓

                              神の誕生
992デフォルトの名無しさん:2012/02/25(土) 22:34:29.70
宿命はよ
993 【34.1m】 【東電 80.5 %】 :2012/02/25(土) 22:34:31.85 BE:1681366638-2BP(1130)
C90では自動配列も初期化していいんだっけ?
994デフォルトの名無しさん:2012/02/25(土) 22:35:37.11
また珍説ktkr
995デフォルトの名無しさん:2012/02/25(土) 22:36:09.15
例えばこうやったら、多くの環境では c の中身が'Z'になっちゃう。

かんすう()
{
 char c = 'A';
 char s[] = "abc";

 s[4] = 'Z';

996デフォルトの名無しさん:2012/02/25(土) 22:37:33.36
次クソは>>999建てろ
997デフォルトの名無しさん:2012/02/25(土) 22:37:38.77
スタックに文字が格納された後にその先頭文字のアドレスがポインタにセットされると考えるべきなのか
998デフォルトの名無しさん:2012/02/25(土) 22:37:59.47
999デフォルトの名無しさん:2012/02/25(土) 22:38:34.39
1000デフォルトの名無しさん:2012/02/25(土) 22:38:41.90
宿命はよ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。