トップページ⇒tech
1001コメント249KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2012/02/14(火) 04:28:49.26
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/
0002デフォルトの名無しさん2012/02/14(火) 18:52:55.68
LEDの点灯プログラムの一部なんですけど
0x01 ^ 0xff とはどういう意味なのでしょうか?
0003デフォルトの名無しさん2012/02/14(火) 18:54:18.84
そのくらい自分で調べろゴミ。
0004デフォルトの名無しさん2012/02/14(火) 19:07:19.86
>>2
^はxorで、両方のビットが同じなら0、同じでなかったら1になる演算。
それは0xfeになる。
0005デフォルトの名無しさん2012/02/14(火) 19:29:24.50
>>3
ホントにゴミなもんですいません

>>4
ありがとうございます
助かります
0006デフォルトの名無しさん2012/02/14(火) 19:32:25.97
http://ameblo.jp/c-plus-style/entry-11164192768.html
検証お願いします
0007デフォルトの名無しさん2012/02/14(火) 19:36:18.66
>>6
何ヶ月か前も同じコード見た記憶があるんだけど、なんで何回もきくの?
0008デフォルトの名無しさん2012/02/14(火) 19:53:09.84
>>6
どうなの?
0009デフォルトの名無しさん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;
}
よろしくお願いします。
0010デフォルトの名無しさん2012/02/14(火) 19:57:04.09
>>9
値の交換が間違ってるのと(tempに二回代入してる)
最後の表示はjじゃなくてiを使う
0011デフォルトの名無しさん2012/02/14(火) 19:59:55.89
>>9
値の交換はこうだろ。

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

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

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

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

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

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

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

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

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

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

別にcがXを記憶していたのではなく、cの記憶していたint型の値から
isupperが文字コードに変換するという作業をしたという認識でよろしいでしょうか。
0063デフォルトの名無しさん2012/02/15(水) 16:40:32.99
かぶった上に整形もせずしかも間違えててはずかしい
0064デフォルトの名無しさん2012/02/15(水) 16:40:41.85
変換はしない。
0065デフォルトの名無しさん2012/02/15(水) 16:42:16.70
>>64
文字コードのデーターベースに参照するという事でしょうね。
0066デフォルトの名無しさん2012/02/15(水) 16:43:28.67
日本語でおk。
0067デフォルトの名無しさん2012/02/15(水) 16:46:12.98
申し訳ありません。自分なりの認識の仕方です。
0068デフォルトの名無しさん2012/02/15(水) 16:50:52.12
ゆとりらしいな。
0069デフォルトの名無しさん2012/02/15(水) 17:00:50.14
言語から入るより、コンピューターの仕組みみたいなのを先にやったほうがいいような
0070デフォルトの名無しさん2012/02/15(水) 17:38:51.29
最近のゆとりは「必要があれば覚える」ってスタンスだからそういうところからやらないんだよ
そのほうが実質的で合理的、俺KAKKEEEEEEEEEEEEEEEEEEEEEEEEEEEとか思ってんだろ
0071デフォルトの名無しさん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;
}
0072デフォルトの名無しさん2012/02/15(水) 17:50:06.52
>>70
まぁソフトウェアに限って言えば今は仕事ないでしょ?
コンピュータの仕組み知ってても就職ないし。

0073デフォルトの名無しさん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 ................
0074デフォルトの名無しさん2012/02/15(水) 18:22:13.30
必要があれば覚えるっていう本来は要領の良さによる賞賛されるべき能力が
単位を取ることにしか活かされてないってのが問題だね

勉学に励む上でこの能力を活かせばいいのに。
0075デフォルトの名無しさん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"
};
0076752012/02/15(水) 18:42:00.94
訂正
.header = "%name=brick a=#CCCCCC b=#FFCCCC"; この行は不要
0077752012/02/15(水) 18:54:06.14
>>75を見れば、仕様はわかると思う。xpm系の亜流だと思う。(わからない人はいいです。さよなら)

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

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

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

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

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

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


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

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

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

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

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

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

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

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

1文字4バイト固定の文字コードをアングロサクソンが受け入れれば、以降に書かれるアプリで文字コードの問題は未来永劫起こらない。
0124デフォルトの名無しさん2012/02/15(水) 23:52:48.56
ふーん
0125デフォルトの名無しさん2012/02/15(水) 23:53:10.90
>>123
お前はユニコードも知らんのか。
0126デフォルトの名無しさん2012/02/16(木) 00:36:01.22
16ビットでは不足していた。Unicodeは、拙速で失敗した
0127デフォルトの名無しさん2012/02/16(木) 00:40:21.25
いつの時代だよ。
0128デフォルトの名無しさん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
0129デフォルトの名無しさん2012/02/16(木) 01:19:04.38
Unicodeのコードポイント1つは
字面上の1文字に対応するとは限らないので
>>123みたいな発想は手遅れ
0130デフォルトの名無しさん2012/02/16(木) 01:39:20.38
>>118
グラフィックライブラリ?
GUIではなくて? マルチメディアライブラリ? ハードウェアで高速描画?
有償のライブラリ?
0131デフォルトの名無しさん2012/02/16(木) 01:49:17.87
もう、32バイトで一文字のビットマップ直接表現しようぜ。
0132デフォルトの名無しさん2012/02/16(木) 01:49:46.43
頭、大丈夫か?
0133デフォルトの名無しさん2012/02/16(木) 01:51:45.81
64bitの有能なパソコンだとC言語使ったら何か変わるの?
0134デフォルトの名無しさん2012/02/16(木) 01:58:29.84
メモリがたくさん使える。
0135デフォルトの名無しさん2012/02/16(木) 02:01:54.54
visual C++ダウンロードしたいのですが有償ですか?
古いのでいいのなら無償でインスコできますかね?
0136デフォルトの名無しさん2012/02/16(木) 02:02:19.54
express
0137デフォルトの名無しさん2012/02/16(木) 02:10:57.34
>>136
2010 expressを今ネトインスコしてます。
まじでドキドキします。
俺のPCで動くのだろうか。
0138デフォルトの名無しさん2012/02/16(木) 02:46:12.85
ドキドキするね
0139デフォルトの名無しさん2012/02/16(木) 02:52:44.52
起動遅過ぎだなぁ
0140デフォルトの名無しさん2012/02/16(木) 03:13:02.49
マイクロソフトの人にdreamsparkのCD貰ったけど使ってないな
0141デフォルトの名無しさん2012/02/16(木) 06:15:16.58
>>139
ずっと起動しとけば問題ない
0142デフォルトの名無しさん2012/02/16(木) 15:40:52.76
二つのint型変数の値を返したい場合は、構造体を返すのがいいのでしょうか。
それとも、それぞれを分けて、一つずつ値を返す関数を書くのがいいのでしょうか。
あるいは、その二つのint型変数をグローバル変数として宣言し、呼ばれる側の関数で処理をするのがいいのでしょうか。
ないしは、呼ばれる側の変数にアドレスを渡して、ポインタを使って直接アクセスするのがいいのでしょうか。

私は、ポインタを使って直接アクセスするように書いたのですが、この方法では呼ぶ側の関数で必要のない変数(二つのint型変数)を宣言しなければならず、これが少し気持ち悪い気がするのです。
こんなときはどのようにするのが一番いいのでしょうか。
0143デフォルトの名無しさん2012/02/16(木) 15:44:03.96
配列で返せばいいんだよ
0144デフォルトの名無しさん2012/02/16(木) 15:47:02.34
>>142
二つのint型変数の値を返すんだから、返してもらう方(呼び出し側)が器用意してあげないでどうする?
0145デフォルトの名無しさん2012/02/16(木) 15:49:34.14
>>142
>呼ぶ側の関数で必要のない変数
それ値返す必要が無いんじゃね?
0146デフォルトの名無しさん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);
}
0147デフォルトの名無しさん2012/02/16(木) 15:57:18.05
>>144
これがソースなのですが、inとoutの値を返すのにはその器が必要ですよね。


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

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


コマンドプロンプトでのコマンドはVisual C++独自のものってあるんですか?
0155デフォルトの名無しさん2012/02/16(木) 18:12:36.23
は?
0156デフォルトの名無しさん2012/02/16(木) 18:13:33.06
>>155
コンパイルするときのオプションコマンドですよ。
独自のものあるんでしょうか?
0157デフォルトの名無しさん2012/02/16(木) 18:18:34.71
http://msdn.microsoft.com/ja-jp/library/9s7c9wdw(v=vs.100).aspx
自分で判断してください
0158デフォルトの名無しさん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
0159デフォルトの名無しさん2012/02/16(木) 18:20:06.83
コンパイルオプション何てよっぽど高度な事しない限り必要ないと
思いました
0160デフォルトの名無しさん2012/02/16(木) 18:22:51.67
>>156
ほれ
http://msdn.microsoft.com/ja-jp/library/610ecb4h.aspx
0161デフォルトの名無しさん2012/02/16(木) 18:31:49.54
>>160
ありがとう兄さん

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

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

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

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

スレ違いスマソ
0178デフォルトの名無しさん2012/02/16(木) 23:25:56.07
>>149
2つの値のペアに意味があるならstructにすればいい。
今回はstructにした方がいいケース。プログラムがそれなりに大きいなら
きっとほかにもメンバーが入るはず。
>>156
お前がいいたのはオプションじゃなくてコマンド名だろ。
コンパイラドライバの名前はclだ。
>>177
Occam2が持ってたな。a, b := c, d
パラレルプログラミングがとても簡単だったな。
0179デフォルトの名無しさん2012/02/16(木) 23:34:55.45
多重代入はperlにもある。
0180デフォルトの名無しさん2012/02/16(木) 23:55:49.43
スクリプト言語だと珍しくないみたい

http://pub.cozmixng.org/~the-rwiki/?cmd=view;name=%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3%3A%3A%C2%BF%BD%C5%C2%E5%C6%FE
0181デフォルトの名無しさん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
0182デフォルトの名無しさん2012/02/17(金) 00:19:49.21
javaとjavaスクリプトの違いって何ですか?
0183デフォルトの名無しさん2012/02/17(金) 00:25:38.21
>>182
全然関係ない別の言語。
スレ違いだけど、だいたいスレ違いだからもう気にしない。
0184デフォルトの名無しさん2012/02/17(金) 00:29:02.61
>>183
javaスクリプトってブラウザで動くアプリケーションのための言語って
いうイメージです。アプレットみたいな。

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

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

ちなみにこの手の処理で参考になるような文献とかコードとかありますかね。
0195デフォルトの名無しさん2012/02/17(金) 07:59:12.78
>>194
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5!
0196デフォルトの名無しさん2012/02/17(金) 08:01:19.45
>>194
リハッシュはそんなに重くない処理なので一気にやってしまう
徐々に移行させようとするほうが遅くなる
0197 ◆QZaw55cn4c 2012/02/17(金) 08:08:14.34
>>192
そんなに難しいことではありません。
分割コンパイル自体をお題にした書物は思いつかないのですが、たとえばこれでいろいろと周辺事情をみてみるのはどうでしょうか?
http://www.amazon.co.jp/dp/4774117544/
0198デフォルトの名無しさん2012/02/17(金) 08:09:33.74
>>194
http://en.wikipedia.org/wiki/Hash_table#Dynamic_resizing
0199デフォルトの名無しさん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
0200 ◆QZaw55cn4c 2012/02/17(金) 08:45:42.75
>>199
ふふふ、それが分割コンパイルを最初に習うには絶好の書籍だと考えているのです。
無関係ではありません。
0201デフォルトの名無しさん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   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶

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

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

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

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


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


データがあるでしょうよ。
0219デフォルトの名無しさん2012/02/17(金) 16:46:46.11
そこはわかれよ
0220デフォルトの名無しさん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)とは、データに対して行うことができる
一揃いの操作群によって、数理科学的な定義で、
あるいはプログラミング言語で記述されたデータ型のこと。

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

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

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

羨ましい。


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

strcmpは文字列の比較。char *を渡さなきゃならない。この場合は==で調べりゃいい。
if(c == ',')printf('a');
あと、先回りして回答しとくと
char c;
じゃなく
int c;にすること。
0249デフォルトの名無しさん2012/02/18(土) 10:42:19.19
>>248
頭悪すぎる
0250デフォルトの名無しさん2012/02/18(土) 10:47:34.69
while((c = fgetc(file)) != EOF){
if(strcmp(c, ",")==0)printf("a");
printf("%c\n",c);
}
0251デフォルトの名無しさん2012/02/18(土) 11:27:45.25
if (!strcmp(c, ",")) printf("a");
のほうが俺カッコイーwwってなる
0252デフォルトの名無しさん2012/02/18(土) 11:35:39.06
>>245です
うまく解決できませんでした
IF文のとこでこんなエラーがでます
assignment makes pointer from integer without a cast
0253デフォルトの名無しさん2012/02/18(土) 11:39:51.65
strcmpにintを渡して良いって書いてある?
マンコまんど読みなさい
0254デフォルトの名無しさん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;
}
0255デフォルトの名無しさん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が好きだわ。
0256デフォルトの名無しさん2012/02/18(土) 12:25:49.73
0 == strcmp(a, b)
これだけは絶対にヤダ。こういう書き方する奴殺したくなる。
0257デフォルトの名無しさん2012/02/18(土) 12:26:50.15
痛風しました。
いてて
0258デフォルトの名無しさん2012/02/18(土) 12:32:49.07
うむ
0259デフォルトの名無しさん2012/02/18(土) 13:27:57.88
dwmに下記のコードがありました。


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

unsigned charにキャストしてうまくいきました。
どうもありがとうございました!
0360デフォルトの名無しさん2012/02/19(日) 02:42:03.69
バカにキャスト教えんな。
0361デフォルトの名無しさん2012/02/19(日) 02:46:53.70
hogeとか使ってる基地害まだいるのか
こういう公の場でホゲとか言って恥ずかしくないのかな
神経疑うわ
0362デフォルトの名無しさん2012/02/19(日) 02:54:00.71
ちいせえ…
0363デフォルトの名無しさん2012/02/19(日) 04:06:39.43
お前の…
0364デフォルトの名無しさん2012/02/19(日) 04:50:09.87
>>361
お前の基準では何を使うべきなんだ?
0365デフォルトの名無しさん2012/02/19(日) 04:51:51.52
foo, bar, bazでいい。
hogeとか間抜けすぎるな。
0366デフォルトの名無しさん2012/02/19(日) 05:41:49.28
識別子にchinkoやらmankoやらunkoやら出て来ることすらある2chで何を言うのやら
0367デフォルトの名無しさん2012/02/19(日) 05:45:53.77
そんなの2chでも見たことねーな。
0368デフォルトの名無しさん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   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
0369デフォルトの名無しさん2012/02/19(日) 05:52:39.64
なんだニワカか
0370デフォルトの名無しさん2012/02/19(日) 05:54:51.02
間抜け乙。
0371 ◆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;

でどうでしょうか。
0372デフォルトの名無しさん2012/02/19(日) 06:37:18.89
char fuga = hoge & 0xff
無意味乙。
ほんと、お前何も理解してないんだからレスやめとけ。
0373デフォルトの名無しさん2012/02/19(日) 06:47:25.85
どうしようもないバカだから仕方ない
0374デフォルトの名無しさん2012/02/19(日) 06:51:28.24
まるでintegral promotionの日本語訳が暗黙の型変換であるかのような書き方はよくない
0375 ◆QZaw55cn4c 2012/02/19(日) 07:27:51.51
>>372
失礼。
int fuga = hoge & 0xff
でしたね。
>>374
ボーランドの解説はそんな感じでしたよ。
0376デフォルトの名無しさん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行目で強制終了しちゃうんですけどどこが間違ってるんですかね?
0377 ◆QZaw55cn4c 2012/02/19(日) 07:29:08.63
まあ、「整数の上位型への変換」ぐらいが妥当なところでしょうか。
0378デフォルトの名無しさん2012/02/19(日) 07:29:55.50
なぜ日本語の仕様書の記述を無視するんだ?
0379デフォルトの名無しさん2012/02/19(日) 07:31:02.38
>>376
>scanf_s("%d",&a,&b);
0380デフォルトの名無しさん2012/02/19(日) 07:33:08.73
バカな間違いしてはアホな言い訳ばっかり
0381デフォルトの名無しさん2012/02/19(日) 07:37:37.06
言い訳ばかりだよね
0382デフォルトの名無しさん2012/02/19(日) 07:42:43.51
>>376
>for(j=0;tmp!=0;j++)
>tmp[j]/=10;
ループの終了条件がおかしくてjが配列の範囲外までいくから
0383デフォルトの名無しさん2012/02/19(日) 07:44:00.09
改行の扱いもな。
さて、いくつ間違いがあるでしょう的な。
0384デフォルトの名無しさん2012/02/19(日) 07:44:52.04
そうだね
0385デフォルトの名無しさん2012/02/19(日) 07:47:11.53
>>379
>>382
ありがとうございます。色々と修正してなんとか動きました。
0386デフォルトの名無しさん2012/02/19(日) 07:47:48.09
ダウトw
0387デフォルトの名無しさん2012/02/19(日) 07:57:09.52
>>385
いえいえ
0388 ◆QZaw55cn4c 2012/02/19(日) 08:02:04.63
>>378
integer promotion の JIS の訳には批判的なものでね
0389デフォルトの名無しさん2012/02/19(日) 08:04:46.78
なにがしたいのかよくわからない
a+bの桁数を求めたいのか?
0390デフォルトの名無しさん2012/02/19(日) 08:05:52.11
言い訳すればするほどバカを晒してくw
0391デフォルトの名無しさん2012/02/19(日) 09:11:44.07
基礎もまともにやってないゴミが質問に来るようなスレ
初心者は初心者でも馬鹿は排除する方向で
0392デフォルトの名無しさん2012/02/19(日) 09:13:40.98
質問する側は別になんでもいいよ
答えるほうが馬鹿だと荒れる
0393デフォルトの名無しさん2012/02/19(日) 09:25:14.26
>>388
integral promotionの日本語訳としてはふさわしくないかもしれないねえ。
integer promotionの日本語訳として整数拡張は適切だ。

お前、自分が今まで間違えてた事を、必死になって検索して今日初めて気づいただろ。
本当にうんこだな。
0394 ◆QZaw55cn4c 2012/02/19(日) 10:12:14.93
>>393
integral には「積分の」という意味もあるが「整数の」という意味もありますね。
0395デフォルトの名無しさん2012/02/19(日) 10:20:24.89
「整数のプロモーション」と「整数プロモーション」では意味が全然違う。
だから、「暗黙の型変換」なんてうんこ用語まき散らしたんだろ。w
0396 ◆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 という名詞を修飾するのにどちらを使うのが「格式的」・「厳密的」なのかを考えて見ましょう。
0397デフォルトの名無しさん2012/02/19(日) 10:33:26.06
promotionを変換と訳するセンスには何人たりとも追いつくことはできない。www
0398デフォルトの名無しさん2012/02/19(日) 10:37:11.58
必死で検索してるねえ。でもpromotionを「変換」って説明しちゃったからねえ。
しかも鳥付だから、あれは自分じゃないという言い訳できない。www
0399デフォルトの名無しさん2012/02/19(日) 10:46:02.13
どっちもお前らの考えを言うのは勝手だが、事実を先に述べてからにしろ
知らない人が混乱する

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

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

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

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

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

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

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

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

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

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

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

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

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

変数に対する exern もいらない子
それでエラーがでるのは外部変数を初期化している場合であるが、この初期化はコードとして記述すればよい。
0444 ◆QZaw55cn4c 2012/02/19(日) 14:33:10.89
>>442
?
a != b が前提なんでしょ?
0445デフォルトの名無しさん2012/02/19(日) 14:34:29.93
やはりQZはクズ
0446デフォルトの名無しさん2012/02/19(日) 14:35:49.69
>>443
>変数に対する exern もいらない子

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

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

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

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

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

お前さん、バグ鳥の苦労が足りないとみえるね
0470デフォルトの名無しさん2012/02/19(日) 23:35:37.01
コンパイラが警告出す、で終わってるだろ
アホか
0471デフォルトの名無しさん2012/02/19(日) 23:40:25.94
当時そういう流派があってそれなりに認められていたのは事実だけど、
多数派ではなかったし、その後すっかり廃れたというのもまた事実。
0472デフォルトの名無しさん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);
}
0473デフォルトの名無しさん2012/02/19(日) 23:46:40.07
#define と同じ効能を狙ってるんでは。
const とか付いてないの?
0474デフォルトの名無しさん2012/02/19(日) 23:48:50.92
ああ、そういう話じゃないすね。ごめんちゃい。

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

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

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

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

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

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

>>478
自信がないからトリはずしてんだろうねw
分かってなきゃレスしなきゃいいのに、自己顕示欲の強いクズだなしかし。
0485デフォルトの名無しさん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/
0486デフォルトの名無しさん2012/02/20(月) 08:48:42.83
>>484
うんこでいいよ。

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

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

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

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

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

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

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

これを主張してる間抜けな奴らがいるじゃん。>>261とか。
じゃ、「両方左辺値だったらどうすんだよ?」と聞くと黙っちゃう。
だから、代わりに答えてやった。
0510デフォルトの名無しさん2012/02/20(月) 15:39:33.12
>>509
?
左辺値についての言及しかないようだが
0511デフォルトの名無しさん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ってことでいいだね
0512デフォルトの名無しさん2012/02/20(月) 15:42:20.90
>>510
「左辺値」、「右辺値」って知ってる? 知らなけりゃ参加資格ないよ。
0513デフォルトの名無しさん2012/02/20(月) 15:44:16.16
>>510
左辺においてある値 と 左辺値 って意味違うですよ?
0514デフォルトの名無しさん2012/02/20(月) 15:45:44.08
>>512
うん、知ってるよ。左辺値右辺値ごときでどや顔しなさんな
あとお前さんアンカーミス多すぎだから気をつけろよ

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

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

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

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

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


ビルド (ソフトウェア) - Wikipedia
ビルド自動化の一形態として、Makefileの自動生成がある。例えば、次のようなツールがMakefileを自動生成する。
GNU Automake
CMake
imake
qmake
Apache Ant
Apache Maven
0530デフォルトの名無しさん2012/02/20(月) 17:34:17.66
まあでもmakeはコンパイル以外にも使えるから使い方覚えといて損はない気がする
0531デフォルトの名無しさん2012/02/20(月) 17:36:50.43
C言語でHelloWorldを表示するだけで分割コンパイル・ビルド使ってる訳だが。
stdio.hを読み込んで、関数本体をリンクするだろ。
それが分割コンパイルだ。標準関数はコンパイル済。
0532デフォルトの名無しさん2012/02/20(月) 17:43:35.32
分割コンパイルのキモはモジュール設計。
ツールなんてアイちゃん訓練してやらせとけ。
0533デフォルトの名無しさん2012/02/20(月) 17:52:39.32
どういった関数を公開し入出力インターフェースをどうするかは開発で重要だが。
分割コンパイルを動作させるだけなら、関数のプロトタイプをヘッダファイルへ書き込んでmakeファイルを作るだけ。
ソフトウェア品質は別のことだ。
0534デフォルトの名無しさん2012/02/20(月) 17:56:54.12
そういった利便性、汎用性に関わる事はC++のクラス設計と共通する。
これはC++の標準機能だからC言語範囲外のビルドツールの勉強は不要。
クラスの勉強したら良い。
0535 ◆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の人気に嫉妬
0536デフォルトの名無しさん2012/02/20(月) 22:25:52.53
おまえらCPUは何使ってるの?
おれはcore i7だが
0537デフォルトの名無しさん2012/02/20(月) 22:27:03.57
Z80に決まってんだろ言わせんなよ恥ずかしい
0538デフォルトの名無しさん2012/02/20(月) 22:29:23.62
オサレな68000
0539デフォルトの名無しさん2012/02/20(月) 22:32:28.10
Amiga のCPUってなんつーのかな
0540デフォルトの名無しさん2012/02/20(月) 22:56:11.29
コジャレた68000
0541デフォルトの名無しさん2012/02/21(火) 00:15:18.17
6502はもらっていきますね
0542デフォルトの名無しさん2012/02/21(火) 00:29:08.84
SC/MPだろJK
0543デフォルトの名無しさん2012/02/21(火) 00:33:29.18
TLCS-12Aだろ
0544デフォルトの名無しさん2012/02/21(火) 00:40:05.46
6809でUNI++動かしたのはいい思い出。
0545デフォルトの名無しさん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
0546デフォルトの名無しさん2012/02/21(火) 01:16:24.52
MIPSが抜けてた。
R3000, R4000
0547デフォルトの名無しさん2012/02/21(火) 01:18:39.56
PC88でUNI+動かした
0548デフォルトの名無しさん2012/02/21(火) 01:21:04.95
アーキテクチャよりOS・文字コードとの戦いが主題だからな
いまだにprintfがどーとかこうとかやってるようなスレじゃ
0549デフォルトの名無しさん2012/02/21(火) 01:25:10.55
何の主題だ。
0550デフォルトの名無しさん2012/02/21(火) 01:32:16.07
文字コードとの戦いにさえ至っていない様な
0551デフォルトの名無しさん2012/02/21(火) 02:41:42.14
ランタイムライブラリってプログラミング組むとき意識する必要ないですか?
0552デフォルトの名無しさん2012/02/21(火) 02:46:33.30
ものによる。
0553デフォルトの名無しさん2012/02/21(火) 02:52:29.34
>>488
> if (a == b()) で済むことを
> わざわざ
> c = b();
> if (a == c) とかやって自己矛盾するんだよ

ううん。if (b() == a)ってやるんだよ。
0554デフォルトの名無しさん2012/02/21(火) 02:54:50.60
>>521
ワーニングの内容はcに沿って出るけど、改修対象はもちろんpcだよ。
0555デフォルトの名無しさん2012/02/21(火) 02:57:58.37
× ワーニング
○ ウォーニング
0556デフォルトの名無しさん2012/02/21(火) 03:00:08.37
ナルポ
0557デフォルトの名無しさん2012/02/21(火) 03:00:26.97
ウォニンじゃなくて?
0558デフォルトの名無しさん2012/02/21(火) 03:01:06.29
ヲァニンのほうが近いか。
0559デフォルトの名無しさん2012/02/21(火) 03:01:34.69
>>556
ゲッ
0560デフォルトの名無しさん2012/02/21(火) 03:03:44.70
>>559
コウメイッ
0561デフォルトの名無しさん2012/02/21(火) 03:06:10.73
× ワークマン  http://www.youtube.com/watch?v=Oiedds6wMGw
○ ウォークマン http://www.youtube.com/watch?v=IKzNIP1x1R4
0562デフォルトの名無しさん2012/02/21(火) 04:07:33.42
ワープする ( 宇宙空間のゆがみ[space warp]を利用して超光速飛行する )
ウォープ ( warp )
0563デフォルトの名無しさん2012/02/21(火) 07:35:22.87
ワーニングは日本語
0564デフォルトの名無しさん2012/02/21(火) 10:13:21.85
コンパイル通ったが、なんじゃこりゃ?
http://www.dotup.org2665987.exe_0THgIWOBb4HH2VWbiH53/www.dotup.org2665987.exe
0565デフォルトの名無しさん2012/02/21(火) 10:13:47.77
ウィルス
0566デフォルトの名無しさん2012/02/21(火) 10:44:06.22
うほっ
0567デフォルトの名無しさん2012/02/21(火) 11:03:54.72
C言語で四捨五入する関数がCランタイムにあると聞きましたが
どうやってやればいいんでしょうか?名前を教えてください
引数がdoubleで戻り値がintな関数が知りたいです
0568デフォルトの名無しさん2012/02/21(火) 12:16:06.83
>>567
return a+0.5;
0569デフォルトの名無しさん2012/02/21(火) 12:23:28.17
C++のTips - 四捨五入を行うには?:tech.ckme.co.jp
http://tech.ckme.co.jp/cpp/cpp_round.shtml
0570デフォルトの名無しさん2012/02/21(火) 13:02:59.36
round()ってC99だったのか・・・
0571デフォルトの名無しさん2012/02/21(火) 13:27:01.50
0.5をたして、きりすてます
0572デフォルトの名無しさん2012/02/21(火) 13:37:52.91
-1.5 では -1 にするの? -2 にするの?
0573デフォルトの名無しさん2012/02/21(火) 13:43:51.51
そこまで考えてないから初心者なんだろう、察してやれよ
0574デフォルトの名無しさん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
0575デフォルトの名無しさん2012/02/21(火) 13:57:22.40
>>574
これCのround()とは違くね?
0576デフォルトの名無しさん2012/02/21(火) 14:30:33.62
多くの環境で、最近接偶数丸めが採用されていたら、計算結果がC言語だけ異なると困るから合わせてくるはずだ。
0577デフォルトの名無しさん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
0578デフォルトの名無しさん2012/02/21(火) 14:41:35.00
>>576
知りもしないことはレスする必要ないよ?
05795672012/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);
}
0580デフォルトの名無しさん2012/02/21(火) 15:13:18.25
それでいいじゃんかw
0581デフォルトの名無しさん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;
}
0582デフォルトの名無しさん2012/02/21(火) 15:16:59.39
それそのままつかえ
0583デフォルトの名無しさん2012/02/21(火) 16:32:13.36
1.4が0になって-1.4が0になるのか
0584デフォルトの名無しさん2012/02/21(火) 16:33:45.82
ならないな
すまん
0585デフォルトの名無しさん2012/02/21(火) 16:34:23.61
>>582
そのままつかえだよね
0586デフォルトの名無しさん2012/02/21(火) 19:41:49.28
うんこいってくる
0587デフォルトの名無しさん2012/02/21(火) 19:54:02.08
0.5って無理数だから結果を整数変換すると微妙なんだよな
0588デフォルトの名無しさん2012/02/21(火) 19:55:23.40
いや有理数だよ
0589デフォルトの名無しさん2012/02/21(火) 19:55:55.49
>>587
0.5が無理数ってどんな世界に住んでいるの?
0590デフォルトの名無しさん2012/02/21(火) 19:59:46.94
>>587
バカがいたw
0591デフォルトの名無しさん2012/02/21(火) 20:00:39.01

                     / ̄\
                      | ^o^ |
                    \_/
                       r彡ソ
                       r_ノ!!        
                      r_ノ|| .         ~   ←人間
                     r_ノ!|         H
                         r_ノ|
                        r_ノ|           白ながすくじら
                      r_ノ|     ,......-..-―‐―--..r、_   
                         |  |    ヾー-゚、 :::::::::::::::::::::::::_ ̄ニ`゙、
        r、                 |  |      ゙`ー-`ー'-ー'" ̄    `'
.          | ゙、            |  |    ├──────────|
        |   ゝ               |  |
        |  {             |  |          ((((( ゆ ←まぐろ
         |  |                 |  |               |-|
        {  ヽ           /  /
         ヽ  \_      /  /   ・ ←鰯 
          ヾ.    ̄ ̄ ̄ ̄_/             
             ̄ ̄"""゙゙`´                
         |───────────|
0592デフォルトの名無しさん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}
0593デフォルトの名無しさん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;
}
0594デフォルトの名無しさん2012/02/21(火) 20:22:56.81
ブロック分は時間と用法を守って定期的に摂取してください。
タブ分の取りあかついには十分お気を付け下さい。
0595デフォルトの名無しさん2012/02/21(火) 20:24:14.92
しなくてもいい

設計思想とかバイアスぬきで
いいかどうかなら
0596デフォルトの名無しさん2012/02/22(水) 02:10:42.68
>>581
何で一回変数に入れてしまったの
0597デフォルトの名無しさん2012/02/22(水) 02:13:20.94
いいんだよ
人間だもの
0598デフォルトの名無しさん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
0599デフォルトの名無しさん2012/02/22(水) 02:22:27.34
>>579
>>569で答え出てるけどな。
int(a+.5-(a<0));
0600デフォルトの名無しさん2012/02/22(水) 02:22:40.54
>>596
debugする時に必要になる場合がある。
gccに-O3とか渡せば一時的な変数は勝手に消してくれる
だから
0601デフォルトの名無しさん2012/02/22(水) 02:27:47.37
>>599含めお前らマジで言ってんのか?w

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

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

Cを知らなかったことは恥だぞ。ここは「C言語なら俺に聞け」だからな。
0618デフォルトの名無しさん2012/02/22(水) 10:37:59.11
>>617
痛いのはお前だ。
0619デフォルトの名無しさん2012/02/22(水) 10:53:38.93
>>618
ふーむ、それじゃ>>598を正しく書き直して見せてくれよ。
-Wall -Werror (VC++だったら -Wall -WX)は今時は当たり前だからな。
コンパイルエラーが出るようなみっともない書き方はしないでくれよ。
0620デフォルトの名無しさん2012/02/22(水) 11:51:03.18
そうだね
0621デフォルトの名無しさん2012/02/22(水) 15:17:00.65
【速報】「痛いニュース」が、なんJのレスをロンダ転載。なんJ民が激怒中
http://engawa.2ch.net/test/read.cgi/poverty/1329888247/
0622デフォルトの名無しさん2012/02/22(水) 15:47:25.86
嫌儲くせえ。出てくるなよ。嫌われてるのわかってんの?
0623デフォルトの名無しさん2012/02/22(水) 18:07:35.36
警告とエラーが区別できない〜一緒にしたがるやつが定期的にわくな
微笑ましいことだ
0624デフォルトの名無しさん2012/02/22(水) 18:10:52.83
型変換されるからなくてもいいけど、キャストを明示的に示すことに意味がないわけでもない
どっちの言うことも極論すぎておかしい
0625デフォルトの名無しさん2012/02/22(水) 19:02:30.50
おかしいね
0626デフォルトの名無しさん2012/02/22(水) 19:06:03.13
うん、おかしいね
06275982012/02/22(水) 19:47:05.88
お、おう。。
まさかこんなに
return (int)x;
が叩かれてるとは思ってなかったぞw
0628デフォルトの名無しさん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;
}
0629デフォルトの名無しさん2012/02/22(水) 20:26:41.60
return (int)x; の問題点が何なのかわからない
0630デフォルトの名無しさん2012/02/22(水) 20:35:08.10
>>627
C++も忘れるなwww
0631デフォルトの名無しさん2012/02/22(水) 20:39:15.07
>>629
それ自体にはあまり問題はない。
が、それがなければならないと思い込んでいるところが痛い。
0632デフォルトの名無しさん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
キャスト病に感染して治癒したばかりの初心者が、キャスト病感染者と勘違いして笑ってるんだろう。
0633デフォルトの名無しさん2012/02/22(水) 20:45:48.65
rint()かround()でいいだろ。
0634デフォルトの名無しさん2012/02/22(水) 20:50:40.15
キャスト病って何?
0635デフォルトの名無しさん2012/02/22(水) 20:53:02.08
>>634
コンパイル通すために内容に関わらず何でもかんでもキャストする病気
0636デフォルトの名無しさん2012/02/22(水) 20:55:33.41
新人がキャスト病にかかってプログラマ辞めた
0637デフォルトの名無しさん2012/02/22(水) 20:56:36.18
今回の場合、int戻り値の関数で平気でdouble返すのは、
コンパイラがwarning出す出さないに関わらず気持ち悪いけどなぁ
0638デフォルトの名無しさん2012/02/22(水) 20:58:14.09
>>636
元々向いてなかったんだよ。
早く気づいてよかったね。
0639デフォルトの名無しさん2012/02/22(水) 20:59:52.08
そんな病気かかったことないぞ
0640デフォルトの名無しさん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);
}

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

はあり得ないと言ってる

好みでものを言ってるのかな。。謎。
0646デフォルトの名無しさん2012/02/22(水) 21:16:27.39
同じ人がずっとはりついてるわけないだろ
2ch には俺とお前の二人だけしかいないってのを信じてるの?
0647デフォルトの名無しさん2012/02/22(水) 21:18:50.26
>>644
意外とプログラムそのものの試験は無いって会社多いんだよ…
それまでは新人教育でどうにかなってたんだろうな
まぁ失敗だった訳なんだけど
0648デフォルトの名無しさん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);
}

ってことだろうね
0649デフォルトの名無しさん2012/02/22(水) 21:22:50.64
C++知らないことを隠そうと必死www
0650デフォルトの名無しさん2012/02/22(水) 21:24:58.89
どゆこと?
0651デフォルトの名無しさん2012/02/22(水) 21:26:28.56
>>647
普通はそうだよね。
やめちゃったのはその新人の教育担当がまともにC知らなかったんじゃない?
ちゃんと説明されてそれを理解できる能力さえあればそんな変な病気にはかからないよ。
0652デフォルトの名無しさん2012/02/22(水) 21:35:41.32
>>651
>ちゃんと説明されてそれを理解できる能力さえあれば
無かったようです。試験も大事ってことで。
0653デフォルトの名無しさん2012/02/22(水) 21:38:52.32
>>652
もしそうなら基本的な力を見極められなかった面接とかの問題でしょ。
プログラムの試験なんてあんまりやっても意味ないよ。
プログラムしかしない派遣とかなら別だと思うけど。
0654デフォルトの名無しさん2012/02/22(水) 21:43:32.43
>>653
採用担当じゃないから詳細は知らないけど、
情報系の学校を卒業してたからあまりチェックしなかったんじゃないかなぁと予想してる
試験に加えて面接も厳しくなったと思うけどね
0655デフォルトの名無しさん2012/02/22(水) 21:46:55.39
そんなにプログラム能力が大事なの?
それなら今までに書いたプログラム持ってきてで済むと思うけど。
0656デフォルトの名無しさん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)。
0657デフォルトの名無しさん2012/02/22(水) 21:59:41.63
>>655
成長してくれれば問題無いんだけどね
まぁ失敗談なんで
0658デフォルトの名無しさん2012/02/22(水) 21:59:52.45
このスレでグチグチ言ってるのはお前だけということだ
0659デフォルトの名無しさん2012/02/22(水) 22:00:51.02
>>656
だったら、最初から、俺に言わないで、return (int)x;はないって言ってるやつに言ってくれよ。

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

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

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

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

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

おい乞食、煽りそこなったら潮時をわきまえろ
無駄な努力だぜ
0765デフォルトの名無しさん2012/02/23(木) 00:32:52.62
そうだそうだ
0766デフォルトの名無しさん2012/02/23(木) 00:33:41.95
おまえら、ばかばか言い合ってるだけで、まったく何も生み出してない
これを不毛という
0767デフォルトの名無しさん2012/02/23(木) 00:34:39.53
量産できるのはゴミレスだけさ
0768デフォルトの名無しさん2012/02/23(木) 00:34:52.39
ハゲちゃう。
0769デフォルトの名無しさん2012/02/23(木) 00:35:13.97
ヘボです。
0770デフォルトの名無しさん2012/02/23(木) 00:36:29.09
このスレももう潮時だな
0771デフォルトの名無しさん2012/02/23(木) 00:37:00.18
このスレももう潮時だな(キリッ
0772デフォルトの名無しさん2012/02/23(木) 00:37:12.70
>>770
はい、さようなら。
0773デフォルトの名無しさん2012/02/23(木) 00:39:48.23
そうだそうだ
0774デフォルトの名無しさん2012/02/23(木) 00:40:11.84
ばかじゃねえの
0775デフォルトの名無しさん2012/02/23(木) 00:40:29.91
ばかじゃねえよはげだよ
0776デフォルトの名無しさん2012/02/23(木) 00:40:30.34
お前がな。
0777デフォルトの名無しさん2012/02/23(木) 00:40:54.75
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0778デフォルトの名無しさん2012/02/23(木) 00:41:13.65
はげはげいうんじゃねえよ
0779デフォルトの名無しさん2012/02/23(木) 00:42:54.02
うるせーはげ
0780デフォルトの名無しさん2012/02/23(木) 00:43:12.25
不毛
0781デフォルトの名無しさん2012/02/23(木) 00:43:31.28
はげはげいうんじゃねえよ(泣)
0782デフォルトの名無しさん2012/02/23(木) 00:44:16.93
結局関数ポインタの宿命ってなんだったの?
関数によっては不要な引数があるよってだけ?
0783デフォルトの名無しさん2012/02/23(木) 00:45:55.05
>>782
そうとも違うとも答えてやらんw
0784デフォルトの名無しさん2012/02/23(木) 00:46:01.58
別に引数なら省略すればいいだけだし、なんなんだろうね。
おれも知りたい。
0785デフォルトの名無しさん2012/02/23(木) 00:46:43.82
こいつ>>783おっさんが拗ねてるみたいで気持ち悪いな。
0786デフォルトの名無しさん2012/02/23(木) 00:47:08.30
ぷんぷんっ
0787デフォルトの名無しさん2012/02/23(木) 00:47:11.33
おれもおれも
0788デフォルトの名無しさん2012/02/23(木) 00:50:35.02
やっぱりバカ確定でFA?
0789デフォルトの名無しさん2012/02/23(木) 00:51:20.37
なんでそんなにバカということにしたがるんだろう
0790デフォルトの名無しさん2012/02/23(木) 00:52:31.19
バカじゃないふりをするからじゃない?
0791デフォルトの名無しさん2012/02/23(木) 00:53:33.41
うるせーバカ
0792デフォルトの名無しさん2012/02/23(木) 00:53:45.70
聞いてるほうも答えないほうもどっちもただのバカなのにな
0793デフォルトの名無しさん2012/02/23(木) 00:54:16.96
>>784
今日一日粘着してたぼけの暴れ方見てみな
なんなのかはわかるだろうぜ
0794デフォルトの名無しさん2012/02/23(木) 00:54:37.06
>>784引数を省略ってどういうこと?
0795デフォルトの名無しさん2012/02/23(木) 00:55:39.95
昔よりも上達したな
あと200ちょいで1000いくぞ
0796デフォルトの名無しさん2012/02/23(木) 00:56:26.95
そもそも今時関数ポインタなんてほとんど使わないしなぁ。
0797デフォルトの名無しさん2012/02/23(木) 00:56:39.88
うんこ
0798デフォルトの名無しさん2012/02/23(木) 00:57:42.44
>>794
使わない変数は書かなきゃいいんだよ。
でもそうすると引数の意味がわかりにくいから書きたい。
なのでno-unusedを使うわけ。
0799デフォルトの名無しさん2012/02/23(木) 00:58:23.24
うんこ
0800デフォルトの名無しさん2012/02/23(木) 01:01:01.20
>>798
わからんからコードで例を
0801デフォルトの名無しさん2012/02/23(木) 01:01:27.61
くさい
0802デフォルトの名無しさん2012/02/23(木) 01:02:38.83
>>800
宿命が何かわかったら書いてやるよwww
0803デフォルトの名無しさん2012/02/23(木) 01:02:39.48
>>798
あれ、きみは Werror 君? その話とは違うぞ、ばかだなあw
0804デフォルトの名無しさん2012/02/23(木) 01:03:27.35
>>803
だから>>784と書いてるんだろ、ヘボ。
0805デフォルトの名無しさん2012/02/23(木) 01:05:37.35
てめーら全員トリップつけやがれたこ野郎ども
0806デフォルトの名無しさん2012/02/23(木) 01:05:52.01
>>804
意味わかんねーぞ低脳
0807デフォルトの名無しさん2012/02/23(木) 01:06:31.21
>>805
アンカーついてるのさえ読めないんだからつけても意味ないんじゃね?
0808デフォルトの名無しさん2012/02/23(木) 01:15:01.93
お前ら全員鼻毛抜いて出直してこい
0809デフォルトの名無しさん2012/02/23(木) 01:16:07.83
抜くより切った方がいいぞ
0810デフォルトの名無しさん2012/02/23(木) 01:16:14.88
なみだちょちょぎれるからやだ
0811デフォルトの名無しさん2012/02/23(木) 01:16:28.73
Werror と Warrior ってなんか似てるね!
0812デフォルトの名無しさん2012/02/23(木) 01:17:04.12
特に鼻の穴直近に生えてる短い小作農どもを抜いたときの痛さは異常
0813デフォルトの名無しさん2012/02/23(木) 01:21:13.42
宿命はよ
0814デフォルトの名無しさん2012/02/23(木) 01:21:37.73
ない。以上。
0815デフォルトの名無しさん2012/02/23(木) 01:25:28.57
宿命はよはよ
0816デフォルトの名無しさん2012/02/23(木) 01:26:13.96
ないない。以上。
0817デフォルトの名無しさん2012/02/23(木) 01:27:23.37
これもまた宿命
0818デフォルトの名無しさん2012/02/23(木) 01:27:45.57
運命宿命だれのせい
0819デフォルトの名無しさん2012/02/23(木) 01:28:28.30
That's the destiny.
0820デフォルトの名無しさん2012/02/23(木) 01:28:44.06
-Werror すっかりトーンダウンしたなw
0821デフォルトの名無しさん2012/02/23(木) 01:29:09.39
もちろん>>742のせい
0822デフォルトの名無しさん2012/02/23(木) 01:29:21.74
-Werrorなんぞ、つけたいやつはつけときゃいいんだよ
つけることが目的じゃなくてバグゼロが目的だろ
0823デフォルトの名無しさん2012/02/23(木) 01:31:24.50
手段は問わん、成果を出せ
以上

って言われておしまい
0824デフォルトの名無しさん2012/02/23(木) 01:32:31.97
宿命はよ
0825デフォルトの名無しさん2012/02/23(木) 01:37:43.22
>>822
それが目的だからつけるんだろ。
バグ0とか今時無理ゲーだけどな。
0826デフォルトの名無しさん2012/02/23(木) 01:38:34.85
手段が目的に変わる好例だな
デスマ乙
0827デフォルトの名無しさん2012/02/23(木) 01:40:19.39
誰得
お前ステマ言いたいだけやろ。
0828デフォルトの名無しさん2012/02/23(木) 01:41:19.02
×ステマ
○デスマ
0829デフォルトの名無しさん2012/02/23(木) 01:41:22.44
宿命はよ
0830デフォルトの名無しさん2012/02/23(木) 01:45:21.72
お前らどれ使ってるん?
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E3%82%B3%E3%83%BC%E3%83%89%E8%A7%A3%E6%9E%90#C.E8.A8.80.E8.AA.9E_.E3.81.A8_C.2B.2B
0831デフォルトの名無しさん2012/02/23(木) 01:46:04.33
僕はclangちゃん!
0832デフォルトの名無しさん2012/02/23(木) 01:46:25.21
-Werror も脳なんたらもこだわったところでしょせんローカルってとこわかったか、ばか
0833デフォルトの名無しさん2012/02/23(木) 01:46:33.65
Fortify
0834デフォルトの名無しさん2012/02/23(木) 01:47:18.83
>>832
メジャーだろうがマイナーだろうが結果が全てなんだよ
0835デフォルトの名無しさん2012/02/23(木) 01:48:02.78
ローカルの反対はグローバルだろjk
0836デフォルトの名無しさん2012/02/23(木) 01:48:06.83
そうだそうだ
0837デフォルトの名無しさん2012/02/23(木) 01:49:48.66
>>832
おまえがローカルという言葉をグローバルの対義の意味で使ってないからだろ
0838デフォルトの名無しさん2012/02/23(木) 01:51:51.04
その通りその通り
0839デフォルトの名無しさん2012/02/23(木) 01:51:59.89
>>830
こういうやつが一番たちの悪いバグを仕込むんだよな。
0840デフォルトの名無しさん2012/02/23(木) 01:53:39.34
>>837
グローバル? 変数の話でもしているつもりだったのか?
俺は ISO とは言った、そして突然 K&R C の話をしだした Werror 君の発狂ぶりに驚いている
0841デフォルトの名無しさん2012/02/23(木) 01:54:24.67
どこにK&Rが?
0842デフォルトの名無しさん2012/02/23(木) 01:55:03.89
そうだそうだ、どこにあるんだ
0843デフォルトの名無しさん2012/02/23(木) 01:58:37.67
妄想乙。
って感じ?
0844デフォルトの名無しさん2012/02/23(木) 01:59:17.58
そういう基本的なことは確認してから来い
0845デフォルトの名無しさん2012/02/23(木) 02:00:55.57
宿命はよ
0846デフォルトの名無しさん2012/02/23(木) 02:01:43.71
海はよー 海はよー オヤジの海はよー
0847デフォルトの名無しさん2012/02/23(木) 02:02:50.88
このころ、>>845は
「宿命はよ」と永遠書き込み続ける宿命にあるということに
まだ気づく由もなかったのである
0848デフォルトの名無しさん2012/02/23(木) 02:03:31.29
で、どこにK&Rが?
0849デフォルトの名無しさん2012/02/23(木) 02:03:35.19
気づいてない気づいてない
0850デフォルトの名無しさん2012/02/23(木) 02:05:32.84
もう限界
今日は落ちるぞ
0851デフォルトの名無しさん2012/02/23(木) 02:11:58.11
まだ寝ないでよー
0852デフォルトの名無しさん2012/02/23(木) 02:24:02.82
宿命とK&Rはよはよ
0853デフォルトの名無しさん2012/02/23(木) 07:02:56.95
>>800
>>798が言ってるのは変数名をつけるかどうかってこと。
0854デフォルトの名無しさん2012/02/23(木) 07:03:27.23
ちなみに宿命については俺もわからん
0855デフォルトの名無しさん2012/02/23(木) 07:11:48.67
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>
0856デフォルトの名無しさん2012/02/23(木) 08:03:27.34
なるほど、発生していることにしたいわけですね。
0857デフォルトの名無しさん2012/02/23(木) 08:37:38.81
起きたら、-Werrorに反論できなくなったバカがマトボッククリを持ち出しててワロタ。
0858デフォルトの名無しさん2012/02/23(木) 10:41:24.30
この言語で普段何を作ってる?
ここの人は仕事でのみ
0859デフォルトの名無しさん2012/02/23(木) 10:55:46.54
警告全部取りたい奴がいたら、止めはしないがな。
俺は御免って感じ。
アホみたいに、コンパイラのメーカーに問い合わせしてまで取るとか。
ご苦労様。
0860デフォルトの名無しさん2012/02/23(木) 11:13:02.97
どっからそんな話が出てきたんだよw

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

もしかすると、それが「関数ポインタの宿命」ってやつ? www
0865デフォルトの名無しさん2012/02/23(木) 12:51:27.47
スレが進みすぎててワロタ
元気だなおまえら、仕事は大丈夫なのか?w
0866デフォルトの名無しさん2012/02/23(木) 13:03:29.66
うん
0867デフォルトの名無しさん2012/02/23(木) 15:48:49.63
(アカン)
0868デフォルトの名無しさん2012/02/23(木) 16:09:13.45
そうやってすぐなんJとかに影響されるのよくないと思います!
0869デフォルトの名無しさん2012/02/23(木) 16:39:23.24
新規に書くコードは基本的に警告でないように核よ。
よそからもってきたのとか古のコードは必要もないのに手を入れたくないから
本当に問題のある部分だけしか直さないけど。
0870デフォルトの名無しさん2012/02/23(木) 17:56:57.79
>>865
傷病手当だぉw
0871デフォルトの名無しさん2012/02/23(木) 18:44:01.56
昔は社畜としてバリバリ仕事をしたもんだが、膝に矢を受けてしまってな
0872デフォルトの名無しさん2012/02/23(木) 18:50:06.77
つまりアロー演算子で挫折したのか
0873デフォルトの名無しさん2012/02/23(木) 19:45:55.67
へえ
0874デフォルトの名無しさん2012/02/24(金) 02:21:39.35
入門スレで喧嘩を始めるゴミどもw
0875デフォルトの名無しさん2012/02/24(金) 04:59:39.64
そうだそうだ
0876デフォルトの名無しさん2012/02/24(金) 06:27:10.49
宿命はよ
0877デフォルトの名無しさん2012/02/24(金) 08:14:00.41
宿便はよでろ
0878デフォルトの名無しさん2012/02/24(金) 08:19:09.22
お、うんこと言えばQZ、
お前ならわかるんじゃないか?宿命。
0879デフォルトの名無しさん2012/02/24(金) 09:13:36.79
月曜からの分を纏めて読んだらもよおした。宿便出してくる。
0880デフォルトの名無しさん2012/02/24(金) 09:44:32.18
なんじゃこりゃ?
http://uploader.sakura.ne.jp/src/up85527.jpg
0881デフォルトの名無しさん2012/02/24(金) 10:27:08.58
関数ポインタの宿命だろ。
0882デフォルトの名無しさん2012/02/24(金) 12:15:07.84
うん
0883デフォルトの名無しさん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);
}
のエラーの原因を教えてください。
0884デフォルトの名無しさん2012/02/24(金) 14:19:07.31
エラーメッセージをコピペしろとママに教わらなかったのか?
0885デフォルトの名無しさん2012/02/24(金) 14:21:11.64
>>884
すみません。
list0607.c: In function `main':
list0607.c:26: error: syntax error at end of input
です。
0886デフォルトの名無しさん2012/02/24(金) 14:23:47.18
>>885
int main(void)
{

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

 int main(void)
 {

を2回書いてる

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

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

unsigned char 0xfffc2

このふたつって同じ「0xfffc2番地の8ビットデータ」という
意味ではないのでしょうか
違いがわからないです
0905デフォルトの名無しさん2012/02/25(土) 00:02:55.22
上: コンパイル通る
下: シンタックスエラー
という大きな違いがある。
09069042012/02/25(土) 00:15:52.59
解説書もう一度目通したら理解できました
早とちりですみません
0907デフォルトの名無しさん2012/02/25(土) 00:28:31.83
グローバル変数にstaticつけても意味はない
0908デフォルトの名無しさん2012/02/25(土) 00:29:50.67
急に何を言い出したんだ
0909SCHEME餃子 ◆8X2XSCHEME 2012/02/25(土) 00:51:05.23
>>907
内部リンケージになるでよ。
0910デフォルトの名無しさん2012/02/25(土) 01:02:52.95
>>909
まだ分割コンパイルできないんだ。わかってやれよ。
0911デフォルトの名無しさん2012/02/25(土) 01:17:23.15
stdin
stdout
errno
のように最初から使える変数がありますが、
これらはグローバル変数ですか?
0912デフォルトの名無しさん2012/02/25(土) 01:19:02.80
そうだよ。
0913デフォルトの名無しさん2012/02/25(土) 01:21:07.58
ありがとうございます!
初心者本でグローバル変数は危険、みたいな知識を植えつけられていたのでちょっと違和感でした。
0914デフォルトの名無しさん2012/02/25(土) 01:30:13.59
極力スコープは狭めるべきであって、
グローバル変数は不用意に使わないのがよい、とは言われるが
使ってはいけないものではない
グローバルに必要なものは当然グローバル変数とするのが妥当なことも多い
0915デフォルトの名無しさん2012/02/25(土) 02:01:26.61
>>913
ちゃんと設計できる人ならグローバル変数を頻繁(正しく)に使う。
0916デフォルトの名無しさん2012/02/25(土) 02:03:57.23
ちゃんと設計できる人ならグローバル変数を極力使わない方法で実装する。
0917デフォルトの名無しさん2012/02/25(土) 02:07:16.24
ファイルスコープの変数はそれなりに使う。
0918デフォルトの名無しさん2012/02/25(土) 02:54:54.90
>>915
言いたいことはわかる。
わかるが、グローバル変数を使うことをためらわない、の間違いではないか?
0919デフォルトの名無しさん2012/02/25(土) 04:16:13.37
ちゃんと設計できる人なら goto を頻繁に使う。
0920デフォルトの名無しさん2012/02/25(土) 05:04:26.95
そうだそうだ
0921デフォルトの名無しさん2012/02/25(土) 05:07:23.01
宿命はよ
0922UFCサプライ2012/02/25(土) 05:10:24.47
ポインタがわかんねえええええええええええええええええええええええええええええ
前橋の本読んでもわかんねええええええええええええええええええええええええええ
0923デフォルトの名無しさん2012/02/25(土) 05:21:05.77
いまどきCは何処でも変数宣言が出来るんだから
ポインタを全部const で使えばこんがらがる事は無いと思うんだがな
0924デフォルトの名無しさん2012/02/25(土) 05:55:36.24
全部constつけろとか、お前全然理解してないなw
0925デフォルトの名無しさん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;
}
09269252012/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;
}
0927デフォルトの名無しさん2012/02/25(土) 09:14:06.98
関数ポインタでハマる人はハマる
0928デフォルトの名無しさん2012/02/25(土) 09:33:14.82
>>927
宿命!?
0929デフォルトの名無しさん2012/02/25(土) 09:37:47.54
いいえ、運命です!!
0930デフォルトの名無しさん2012/02/25(土) 09:46:54.27
宿命はよ
0931デフォルトの名無しさん2012/02/25(土) 10:29:04.14
>>922
いいじゃん。C#とかjava,delphi,VBとかいろいろあるじゃん。
君の将来は明るいよ。
0932デフォルトの名無しさん2012/02/25(土) 10:43:50.45
Delphiはポインタあるだろ、このヘボが。
0933デフォルトの名無しさん2012/02/25(土) 10:44:04.21
>>925
ttp://codepad.org/kfURBI02
0934デフォルトの名無しさん2012/02/25(土) 11:02:03.26
>>913
stdin, stdoutあたりはともかく、errnoは失敗だからマネすんなよ。
0935デフォルトの名無しさん2012/02/25(土) 12:36:20.14
扱ってるコードに
setCameraDistance(btScalar(SCALING*50.));
というのがあったんですが、
50の右の . ってプログラム上の作用はないすですよね?
小数点以下のない整数だという意味を強調して
書かれているのでしょうか?
あとbtっていうプレフィックスって何ですか?
0936デフォルトの名無しさん2012/02/25(土) 12:45:50.19
あるよ。50はint、50.はdouble
0937デフォルトの名無しさん2012/02/25(土) 12:50:44.43
>>935
btScalar()がプロトタイプなしでコールされていて、SCALINGが整数だったら挙動が違ってくるな。
普通はプロトタイプありだから、結果、. はあってもなくても同じになるな。
0938デフォルトの名無しさん2012/02/25(土) 12:56:56.47
SCALING*50がintの範囲をちょうど超えるくらいだと
.つけるつけないで変わるんじゃね
0939デフォルトの名無しさん2012/02/25(土) 13:04:59.98
>>937-938
回答ありがとうございます。
そもそも数字の後につく . には、どのような意味があるのでしょうか?
付けるとfloat扱いになるとか?
09409352012/02/25(土) 13:11:43.87
>>935
btの意味は使っているライブラリ(bullet)由来でした
0941デフォルトの名無しさん2012/02/25(土) 13:12:07.28
errno って失敗なの?
スレッド別変数がサポートされてる必要があるけど、すごい使いやすいと思うのに
0942デフォルトの名無しさん2012/02/25(土) 13:12:51.88
>>939
つけるとdoubleになる。
0943デフォルトの名無しさん2012/02/25(土) 13:13:37.97
なるね
0944デフォルトの名無しさん2012/02/25(土) 13:15:35.82
>>941
C以降のメジャーな言語でエラーの種類をグローバル変数で返してるのってないから、
使いやすいって思ってるのは小数派なのでは?
0945デフォルトの名無しさん2012/02/25(土) 13:25:09.88
>>942
ありがとうございました。
0946デフォルトの名無しさん2012/02/25(土) 13:56:40.58
>>945
いえいえ
0947デフォルトの名無しさん2012/02/25(土) 14:31:57.22
他に例が無いから良くないとは
なんとまぁ浅はかな
0948デフォルトの名無しさん2012/02/25(土) 14:34:31.04
こき下ろすだけで自分の意見は怖くて絶対に言えない臆病者登場
0949デフォルトの名無しさん2012/02/25(土) 14:38:57.38
うるさいしねや
0950デフォルトの名無しさん2012/02/25(土) 14:42:21.74
そうだそうだ
0951デフォルトの名無しさん2012/02/25(土) 14:50:31.77
>>944
そうかな?ああ、GetLastError などで間接的に取得してるのも含めて考えてたすまない
WinAPI の GetLastError、VB の Err、PHP/MySQL の mysql_error、…
まあ最近は例外が主力なのかなぁ
0952デフォルトの名無しさん2012/02/25(土) 14:52:15.24
xcbのxcb_connection_tってどこで定義されてます?
0953デフォルトの名無しさん2012/02/25(土) 14:57:20.32
>>951
VBとかPHPで使われてるって聞くと、よけいセンスのない方法なんだなって印象になるな。
0954デフォルトの名無しさん2012/02/25(土) 15:02:56.17
>>953
VBはよく知らんがPHPはlibcのラッパーだから
0955デフォルトの名無しさん2012/02/25(土) 15:06:22.03
>>952
見つけました。
0956デフォルトの名無しさん2012/02/25(土) 16:40:08.49
>>954
Cの方式を踏襲してるんだろうな。
errno方式を採用してるのって、Cかそれの影響を受けたOSやライブラリかもしくはVB。
あんまり現代的ではないな。
0957デフォルトの名無しさん2012/02/25(土) 17:00:09.69
>>956
うん
0958デフォルトの名無しさん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;

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

それともお前はぶられてるから
そのライブラリ先輩とかに貰ってないとか……
そういう悲しい事情でもあんの?
0964デフォルトの名無しさん2012/02/25(土) 21:40:20.99
gnu互換のgetoptつかえ
0965デフォルトの名無しさん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
0966デフォルトの名無しさん2012/02/25(土) 21:50:48.74
>>959
ROM BASICというのがあった。
0967デフォルトの名無しさん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); みたいに * がないと、エイリアスにならないと思うのですが
プログラム自体はあっています、すみませんがしくみというかこういう理解で合っているのかどなたか教えてください
0968デフォルトの名無しさん2012/02/25(土) 21:54:17.43
>>967
両方間違ってる
0969デフォルトの名無しさん2012/02/25(土) 22:01:43.12
> ルール1、文字列リテラルを評価すると先頭文字へのポインタとなる。
違う。
> char s[ ] = "AB";
= の右は初期化子と呼ばれていて通常の式ではない。

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

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

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


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

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

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

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

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

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

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

                                ↓

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

                                ↓

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

                                ↓

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

                                ↓

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

                                ↓

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

                                ↓

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

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

 s[4] = 'Z';

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