C言語なら俺に聞け 140 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8c-8ulf)
垢版 |
2017/05/11(木) 22:20:03.99ID:cn414UR90
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


http://echo.2ch.net/test/read.cgi/tech/1487757355/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
251デフォルトの名無しさん (ワッチョイ 9e28-Yh7p)
垢版 |
2017/05/23(火) 22:57:03.61ID:7CxjD8/v0
>>246
バス幅が8bitでないハードでもったいないことしないためだろ
2017/05/23(火) 23:35:41.22ID:ZdN5y2SH0
>>238の通りQZは「構造体型のオブジェクトが全て同じ境界調整要求をもつ」と主張してるからな

この世に存在する大多数のコンパイラが規格に準拠していないという新説を主張しているぐらいだら
QZの脳内には、余人には考えつかない理屈があるんだろ
2017/05/24(水) 03:30:23.68ID:lEIYBmmJ0
QZはサイコ自演厨
くりかえすQZはサイコ自演厨
2017/05/24(水) 13:17:30.92ID:spHSYyT3M
>>250
なんかトートロジーみたいになってきたけど、K&Rの何でもポインタとして使われてたchar *は
ANSI以降はvoid *になったってことでしょ
255デフォルトの名無しさん (エーイモ SE8a-9r6K)
垢版 |
2017/05/24(水) 15:28:53.02ID:QjzRyjLLE
すいませんこのスレにワッチョイを導入した経緯ってなんですか?
256デフォルトの名無しさん (ワッチョイ 9e7c-Yh7p)
垢版 |
2017/05/24(水) 18:24:04.77ID:yvqQkV490
>>254
言い忘れ
今のCだって void* を void* 以外のポインタに変換できるが
あくまで推奨としてキャストする慣習があるだけで、
キャストが義務化されたのは C++

なので >>247 はかなり斜め上
あることを言い忘れているのだろうと好意的に解釈しても
互換とは何かについて考察が甘いと言わざるを得ない
2017/05/24(水) 18:28:35.29ID:UdPLjxGk0
cuda Cコンパイラーは
void*型からの代入にキャストが無いとエラーになる
多分MSのcl使ってるからそうなる
258デフォルトの名無しさん (ワッチョイ 9e7c-Yh7p)
垢版 |
2017/05/24(水) 18:36:39.06ID:yvqQkV490
>>257
そりゃ、管の方言だろ
cl, gcc, clang-cl どれもok
259デフォルトの名無しさん (ササクッテロロ Sp03-4D2f)
垢版 |
2017/05/24(水) 19:26:19.45ID:E7SQQ2iip
PStructA pstA[10];
に対して
&pstA[1] と pstA+1 は同じ一番目のポインタを返すという認識で合ってるでしょうか?
ポインタ演算と配列の違いが腑に落ちてないです
260デフォルトの名無しさん (ワッチョイ 6b00-Gjiu)
垢版 |
2017/05/24(水) 19:45:56.66ID:L7sKwR/z0
アドレス取得が後か先かの違いじゃない?
あんまり深く考えるとハゲるよ
2017/05/24(水) 19:50:38.77ID:/WrwABBj0
>>250
逆ができたか? できなかったと記憶してるが
2017/05/24(水) 20:44:36.72ID:tHoyeV8z0
NVIDIAのOpenCLコンパイラはvoid*を演算するコードをコンパイルしようとすると落ちる。
263デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
垢版 |
2017/05/25(木) 10:12:33.17ID:NxjYanVn0
>>261
できる/できないを、何を基準に言っている?
K&R 仕様の cc は死ぬほど寡黙なコンパイラで
だからこそ lint が別で用意されていたんだぜ
2017/05/25(木) 10:14:55.51ID:PLr2HWak0
for(int i=0;i<a+3;++i)
でaがループの中で使われなくても毎回計算されなおしますか?
2017/05/25(木) 10:50:22.52ID:jD8c7u6va
され直す。
2017/05/25(木) 11:11:35.32ID:1r4kIkVY0
>>264
volatileなら必ずされなおす
volatileじゃなければされなおされない可能性がきわめて高い
2017/05/25(木) 11:25:49.00ID:jD8c7u6va
そうか、最適化で定数になってる可能性が高いな。
2017/05/25(木) 12:50:12.06ID:0WgUeo5I0
>>263
ああ、思い出して来た
K&R(コンパイラ)では代入でポインタの型検査を行わなかった
関数呼び出し関数プロトタイプがないのでできなかった
すなわち全てポインタ型は互換だった

ここにポインタの型検査を持ち込むんだからK&Rでの「互換」はANSI Cか必要とした「互換」ではなく当然に役にたたない
従って、>>250は的はずれな指摘
269デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
垢版 |
2017/05/25(木) 14:30:16.20ID:NxjYanVn0
落ち着けよ
代入と関数原型は関係ないし
格助詞がふじこってるぞ
2017/05/25(木) 15:03:16.39ID:0WgUeo5I0
わざとそのように誤読したがるのはわかるが
> 関数呼び出し時の検査は関数プロトタイプがないのでできなかった
だな、編集ミスだ
271デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
垢版 |
2017/05/25(木) 15:59:46.97ID:NxjYanVn0
いや、だから代入と関数原型は関係ねえってば
代入が関数なのはC++だぞ
2017/05/25(木) 19:12:03.32ID:0WgUeo5I0
代入と関数呼び出しで型検査が必要になった
関係大あり
273デフォルトの名無しさん (ワッチョイ 0fbc-OpMt)
垢版 |
2017/05/25(木) 21:47:16.88ID:NxjYanVn0
代入には型検査がもともとあった
double a = 1.5;
int b;
b = a;
b には (int)a の値が正しく代入され
決して a の bit63-32 が切り裂きコピーされることはない
2017/05/25(木) 23:12:03.91ID:0WgUeo5I0
>>273
ポインタの型の検査の話だが
お前の短期記憶には障害が発生してるぞ
2017/05/26(金) 01:40:06.53ID:SIwotEYO0
またQZが自演を始めたよ
2017/05/26(金) 05:57:05.69ID:gxtuHd510
-Wshift-op-parentheses
これを守ろうとすると括弧だらけでコードが糞になるから切ることにするよ
2017/05/26(金) 08:18:33.58ID:IXNjZ2pR0
>>276
ifの条件節に代入を直接書けないのもうざいな
278デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 09:57:19.90ID:qaraDccl0
>>274
char *a = "QZ";
int *b;
b = a;
で、これの何が関数呼び出しと関係があるんだ?
俺のページフォールトはいいから
おまえのラッチアップを何とかしようや
2017/05/26(金) 10:14:22.69ID:IXNjZ2pR0
>>278
ポインタの型検査の話だってなんども言ってんだろ
ポインタの型検査は代入と関数呼び出しで行われる

わかったかバーカ
280デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 11:12:11.70ID:qaraDccl0
>>279
わかんねえよデフェクト野郎

代入での型の検査の話だが
お前の制御記憶にはショートモードの故障が発生してるぞ
2017/05/26(金) 11:15:48.33ID:IXNjZ2pR0
>>280
アホウ ANSI-Cでの型検査の話だ
282デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 11:33:23.33ID:qaraDccl0
>>281
アホウはおまえ
>>240から始まって247-250と流れてるのが
おまえにはANSI-Cの話に見えるのか

どうでもいいがCの規格文書名はISO/IEC9899だろうが
未だにX3.159-1989を拠り所としている化石かおまえ?
2017/05/26(金) 13:06:41.64ID:IXNjZ2pR0
アホウ ポインタの型検査が規格になったのはANSI-Cだ

> K&R C では char* でよかった用途に、
> なぜ、わざわざ void* を持ち込んだのか考えてみれ
> サイズが 1 なのが気持ち悪くて、
> サイズが不明ということにするためだろうが
このバカ(お前?)が決定的に間違ってる
void*が必要になったのはポインタ型検査に伴い発生する不都合を解消するためだ
それがあらゆる型へのポインタと互角なポインタであり、その役割をvoid *に割り当てた
284デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 15:24:42.21ID:qaraDccl0
>>283
> ふじこふじこ

>>250もっぺん読め
別に不都合なんか起きてなかったぜ

どうでもいいが、あらゆる型へのポインタと互角に戦えるポインタがあったとして
それ以外のポインタってつおい? compatibility を日本語では互換性だ
ボビーオロゴンみたいな日本語を素でやるな池沼
2017/05/26(金) 18:45:52.60ID:IXNjZ2pR0
>>284
本当に頭悪いなお前
K&Rではポインタの型検査を行ってなかったので、char *(に限らず全てのポインタ)が互換だっただけだ
2017/05/26(金) 18:54:11.28ID:IXNjZ2pR0
ここの文脈では相互に変換できるポインタを「互換」と呼んだ
A pointer to void may be converted to or from a pointer to any incomplete or object type.
2017/05/26(金) 19:53:13.29ID:SIwotEYO0
きえろQZ!
288デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 22:00:35.72ID:qaraDccl0
>>285
で、どんな「不都合」が生じたというんだ?
空想論を一切含まない具体的な例示をしてみろ
2017/05/26(金) 22:03:50.72ID:EYAykb/80
K&R1 なんて今となってはどうでもいい‥

>>287
やだよ
290デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/26(金) 22:06:47.38ID:qaraDccl0
K&R1はCの元々のコンセプトを純粋に美しく語っているもので
これに嫌悪感を持ったり無関心な者はCの本質を知らないのではなく解りたくない者で
去る者は拒まずの消極的破門でいい
2017/05/26(金) 22:14:56.87ID:efrj6x/y0
>>287 >>289
自演?
2017/05/27(土) 00:26:52.71ID:XzB/9PvX0
>>288
バーカ void *のように他のポインタと互換なポインタが無けりゃ
memcpyとか一々キャストしなきゃならないだろ
本当に頭が悪い
293デフォルトの名無しさん (ワッチョイ 7bf9-OpMt)
垢版 |
2017/05/27(土) 06:58:12.92ID:ucevWPfX0
>>292
戯れ言も、せめて事実に基づいてぬかせシャブ中野郎
キャストなんかいらねえのに
おまえが何か思い込んでるのは
コンパイラに警告されたからだろうが
警告って何かわかってねえのまる出しだな
2017/05/27(土) 12:56:06.47ID:XzB/9PvX0
ANSI-CはK&Rで書かれたソースがそのままコンパイルできるように作られたので、エラーではなく警告にしたのは当たり前だ
バカすぎるぞ お前
2017/05/27(土) 15:45:49.87ID:4RTqTK2k0
>>285
>K&Rではポインタの型検査を行ってなかったので、char *(に限らず全てのポインタ)が互換だっただけだ
が事実だったら

>>292
>memcpyとか一々キャストしなきゃならないだろ
2017/05/27(土) 15:46:27.40ID:4RTqTK2k0
>>285
>K&Rではポインタの型検査を行ってなかったので、char *(に限らず全てのポインタ)が互換だっただけだ
が事実だったら

>>292
>memcpyとか一々キャストしなきゃならないだろ
ではないのではないだろうか?
2017/05/27(土) 19:48:36.25ID:bhlzwwxY0
QZ怒りの自演がバレるwwww
2017/05/27(土) 20:24:35.80ID:jOh20AuV0
voidポインタでもキャストしてるわw
2017/05/27(土) 22:37:43.80ID:y4s2F+UB0
freeの戻り値って普通キャストしていたよね
2017/05/27(土) 23:30:24.62ID:3hOJokwS0
(*´ω`*)?
2017/05/27(土) 23:45:53.19ID:vBffp2jh0
(* ͡° ͜ʖ ͡°*)=3
302デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
垢版 |
2017/05/28(日) 07:21:49.29ID:cMxKlmAA0
>>294
ほらな、警告とは何かがわかってない
X3.159-1989ではエラーも警告も定義していない
それらは特定のコンパイラ製品の挙動だ

特定のコンパイラにdisられたら
自分が悪いんだろうとしか思えない
ど初心者の心理からいつまで経っても
卒業できないポンコツPG乙
2017/05/28(日) 20:40:53.29ID:5m3UytZ+0
さあQZが自演するぞ
2017/05/28(日) 20:44:17.90ID:5m3UytZ+0
ゴミ無職QZのクソコード自演は本当に気持ち悪い
305デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
垢版 |
2017/05/28(日) 21:50:21.98ID:HrcHJfqb0
>>299
いつの時代のfreeは値返したの?
306デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
垢版 |
2017/05/28(日) 21:54:08.04ID:QPUrPhGM0
ANSI C以外を語るじじいが居座るスレかよw
307デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
垢版 |
2017/05/28(日) 21:55:27.91ID:cMxKlmAA0
K&Rにはvoidがなく返却値の型を省略すればintと見なされた
returnがないか空のreturn;は不定を返した
これだけ言えばわかるな?
308デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
垢版 |
2017/05/28(日) 22:01:09.82ID:QPUrPhGM0
C言語はUNIXの仕様が前提だから、そこまで含めて移植しなかったから混乱した。
2017/05/28(日) 22:04:17.46ID:VrUpCcMk0
(void)free(ptr) ?
310デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
垢版 |
2017/05/28(日) 22:10:09.67ID:HrcHJfqb0
>>307
いや、freeが何返してたのか解らんけど。それをcastする理由も。
まぁ、一生使うことのない知識だからどうでも良いけどね。
2017/05/28(日) 22:37:19.96ID:7TA+N7360
>>307
でvoidもないのに何にキャストしてたって? w
2017/05/28(日) 23:16:58.78ID:KL+xXoJsM
只の釣りだな
2017/05/29(月) 01:09:58.10ID:lyV0c6X20
>>307
たびたび見受けられるけれど、『返却値』を使うのはやめて欲しい
関数に与えた値をそのまま返すとは限らないんだから
普通に返り血、戻り値じゃあかんの?
314デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
垢版 |
2017/05/29(月) 01:16:09.85ID:j0cmL5ae0
返却値と返り値で、何が違うの?
確かに返却値って言葉はあまり使わない気がするけど、そんなこだわるほどのもん?
2017/05/29(月) 01:17:52.13ID:zS+u+zXg0
排泄値にしよう
2017/05/29(月) 01:27:03.01ID:lyV0c6X20
>>314
返却って人から借りた物をそのまま返すという印象が強い
個人の見解と言ってしまえばそれまでだけれども
317デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
垢版 |
2017/05/29(月) 01:53:50.29ID:j0cmL5ae0
>>316
その君の言うところの意味が、「返す」と何が違うの?って話。
「返す」を大辞林で引いたら一番目の意味に「返却」と書いてある事実をどう考える?

所詮その程度の主観的な印象に過ぎない物を、人に押し付けられても…
まあ、2chだし、言うのも勝手か。
318デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
垢版 |
2017/05/29(月) 02:14:29.26ID:JtPPrjAE0
>>317
返すの意味の一つに返却があるというだけでイコールでは無いと思うけどね。
例えば”上げる”とか辞書引いたら色んな意味が載ってて一番目に載ってる意味と関連するわけではないということは解るよね。
2017/05/29(月) 02:20:02.64ID:lyV0c6X20
>>317
返すって言うところを返却に置き換えることが出来るのは限定されるでしょうに

あなたは釣り銭を返却するって言うつもり?
受けた恩を返却するの?
320デフォルトの名無しさん (ワッチョイ 0f29-OpMt)
垢版 |
2017/05/29(月) 05:18:14.60ID:6wk42oha0
>>313
それは日本鉱業標準審査会に言え
俺に言うな、わかった?
2017/05/29(月) 06:20:41.78ID:RCqUfmRt0
>>313
スプラッターな言語やね
2017/05/29(月) 06:24:13.95ID:KA+g5PFR0
$$$4.3$$$
"V"="1.3335412","0","1","3Q",
2017/05/29(月) 07:45:45.57ID:cJoa6MEM0
>>320
石炭でも掘るのかよ?
324デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
垢版 |
2017/05/29(月) 09:05:50.24ID:j0cmL5ae0
>>319
おかしくないと思うけど?
2017/05/29(月) 09:08:17.15ID:m6wef0Zf0
釣り銭がでてくる所は返却口って呼称してることが多いが まぁ
2017/05/29(月) 09:15:26.79ID:kbe0Kudi0
まさかと思って調べてみれば JIS X3010 では本当に返却値になっているんだな
2017/05/29(月) 09:38:12.28ID:5HzXgXAz0
おいQZそれ以上発狂するな
お前の無知がバレるぞ
328デフォルトの名無しさん (ワッチョイ bb6e-+G4n)
垢版 |
2017/05/29(月) 09:40:08.06ID:3z87Obs+0
ここまで「却」という漢字の調べた者なしw

「却」の意味は答えると「返却値」はおかしいが、英語でReturnと言ってるので返却と翻訳したのだろう。
2017/05/29(月) 10:07:07.99ID:h1ztVJLm0
返すのは制御で、その時に渡す値くらいに思ってたな
330age (ワッチョイ db8d-InMg)
垢版 |
2017/05/29(月) 11:00:15.37ID:T5H0S0Nm0
Windows環境のHANDLE型について教えて下さい。
Windows10/64環境下とWindows7/64環境ではHANDLE型の扱いは異なるのでしょうか?

HANDLE型が使用できない処理系の為に
HANDLE型を返すWindowsのAPIにラッパする形でHANDLE型を整数(unsigned long)にキャストするDLLを作成し、
HANDLE型が使用できない処理系から作成したDLLを通して目的のAPIを使用していました。

Windows7の32/64ビット環境では動作しているのですが、
Windows10の64ビットでは動作しません。
(Windows10/32ビットでは動作しています。)
2017/05/29(月) 11:13:27.19ID:TgEUVyWp0
戻り値を捨てるときはvoidにキャストしてるな
332デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
垢版 |
2017/05/29(月) 11:27:00.44ID:JtPPrjAE0
>>330
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
HANDLEはPVOID
PVOIDはvoid*
つまり64bitのWindowsアプリケーション(LLP64環境)では64bit 同環境でunsigned longは32bit
つまりWindows7ではたまたま動いてるだけ。
333デフォルトの名無しさん (アウアウアー Sa7f-+G4n)
垢版 |
2017/05/29(月) 13:16:39.33ID:6ZDN/iGxa
>>330
Windows SDKの話をここでするなというやつがいるから、Windows SDKスレを探したらないんだなw
2017/05/29(月) 13:22:41.71ID:BOg3kn5n0
win32apiスレがあるじゃん
2017/05/29(月) 19:29:40.57ID:5HzXgXAz0
おいQZ下手に知識をひけらかそうとするなよ
無知がバレるぞ
2017/05/29(月) 19:51:26.34ID:EYaE0z6gd
マイケルソフトは標準化を破壊し、混乱をもたらす者。
2017/05/29(月) 19:57:52.02ID:EYaE0z6gd
パソコンの中に主権があるとしたら、我々の主権はマイケルソフトに蹂躙され続けている。
2017/05/29(月) 20:21:44.72ID:mrHKi14mM
なら使うのやめたら?
2017/05/29(月) 20:38:58.27ID:5HzXgXAz0
QZ怒りのLinux
340デフォルトの名無しさん (ワッチョイ 1f7b-OpMt)
垢版 |
2017/05/29(月) 20:55:21.03ID:zjgINM2w0
ここの過半数が訳語「返却値」を知らないわけか
マジでアホの集まりだな
341デフォルトの名無しさん (ワッチョイ 0f9c-kS8n)
垢版 |
2017/05/29(月) 21:35:32.81ID:j0cmL5ae0


2017/05/29(月) 21:45:39.05ID:EYaE0z6gd
ぶらぶらうざい、ブラウザ
2017/05/29(月) 21:49:57.04ID:ZHccw+L90
返却値知ってる俺カッケー


ってか w
2017/05/29(月) 22:27:06.81ID:6SN6+L3k0
少なくとも返り血というなら返却血だな
345デフォルトの名無しさん (ワッチョイ ab6e-cSoe)
垢版 |
2017/05/29(月) 22:54:17.27ID:hRA+Cftk0
returnは、他動詞だから、返す値だろ。返された値
シェーン、カムバック!
346330 (ワッチョイ db8d-InMg)
垢版 |
2017/05/30(火) 09:45:25.55ID:Kzko1WIk0
>>332

ありがとうございました。
「たまたま動いているだけ」が妙に納得しました。
2017/05/30(火) 20:02:22.03ID:C+7xWm9c0
このスレきも!って思ったらQZが自演しまくてるのか
348デフォルトの名無しさん (ワッチョイ 4b10-OpMt)
垢版 |
2017/05/31(水) 05:42:53.04ID:89AX9+Wb0
>>343
知らないおまえは最悪に格好悪い
これだけは間違いない
2017/05/31(水) 06:38:16.67ID:/NpZlBRIM
>>348
だれも「知らない」なんて言ってないんだが...
思い込みでバグ作り込むタイプやね w
350デフォルトの名無しさん (ワッチョイ 2b75-sfkZ)
垢版 |
2017/05/31(水) 06:57:32.87ID:g7bIgogk0
俺は知らんなぁ。
知ってると何か良いことあんの?
2017/05/31(水) 09:15:02.98ID:jPWlNl/x0
異なる翻訳単位に存在するtypedefで定義された型を参照するには
どうやればできますか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況