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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:47.63ID:J4JGo3XO
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://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
2017/07/30(日) 05:07:33.79ID:7dS2HrxN
じゃあ俺のあてずっぽうの勘だと主たる原因はフォントサイズが小さすぎること
メインの原因はA[i]が紛れ込んでいること
2017/07/30(日) 05:21:48.22ID:0PJrZm1n
>>513
http://bokko.hatenablog.com/entry/20080606/1212695409
2017/07/30(日) 05:50:22.55ID:3UqYvyNk
>>507
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
--j の前が ; であるべきなのに , てことはないよな。
投稿時のtypoだろうな。

if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
の感じから見て、元のifのthen節を{}で囲ってなかったところに
printf() を挿入したから実行条件が変わっちゃった、かな。
「ぶらさがりif文にまつわる問題」てやつ。
(>>512 の指摘 4.)
517デフォルトの名無しさん
垢版 |
2017/07/30(日) 06:32:09.81ID:bW/sP0k9
>>515
C++訛りとは限らんぞ
機械語のオートインクリメントは++が後置で--が前置になっていて
それが透けて見えるように書いていると--は前置だし
2017/07/30(日) 06:41:47.40ID:9ZftmVJd
オーバロードした++やイテレータは前置と後置で速度が違うのか。後置使うやつがいなくなるじゃないか。

C++は欠陥品だな。++Cって名前にしろよ。
2017/07/30(日) 07:03:49.82ID:1+DcPeTw
>>517
機械語の仕様や挙動はCPUの種類による
昔の話だけど8ビットCPUの頃は、インテル(ザイログ)とモトローラでは逆になっていた記憶がある
520デフォルトの名無しさん
垢版 |
2017/07/30(日) 07:39:01.94ID:bW/sP0k9
>>519
LDIとLDDは逆じゃなく両方後置だ
そんな重箱の隅じゃなく本当に逆な例を挙げられるか?
2017/07/30(日) 07:40:09.47ID:9ZftmVJd
オートインクリメントってなんだ?
z80や6809にそんなのあったか?
2017/07/30(日) 07:42:23.87ID:9ZftmVJd
なんだ、ブロック転送のことか。
2017/07/30(日) 08:18:53.67ID:1+DcPeTw
Z80と6809でスタックポインタを弄るときのPUSH/POPでポインタの増減が前置後置逆になってたはず
2017/07/30(日) 08:36:50.77ID:1+DcPeTw
少し調べてみたらやはり逆っぽい
C言語風に表現すれば
6809のPUSHは前置 *--SP、POPは後置 *SP++
Z80のPUSHは後置 *SP--、POPは前置 *++SP
525デフォルトの名無しさん
垢版 |
2017/07/30(日) 09:05:35.12ID:bW/sP0k9
スタックポインタを意識してCのコードに--rとか書かねえよ
526デフォルトの名無しさん
垢版 |
2017/07/30(日) 13:04:06.19ID:0PJrZm1n
ま、そういうのは最近のコンパイラなら最適化で跡形もなく消えちゃう事もあるので普通は考えても意味ないと思う。
527デフォルトの名無しさん
垢版 |
2017/07/30(日) 13:29:40.49ID:bW/sP0k9
そういう問題じゃねえんだよ
話についてこれないならROMってろ
2017/07/30(日) 14:11:56.37ID:W8z6HKGT
C言語始めるためにいろんなサイトを転々としてVScodeとかVS2017とかをインストールしてみたんだけど訳がわからん
サイトに沿って設定とかしたけどどうすればいいかわからなくてどうしょうもない
Javaも少しやっててメモ帳に書いてたんだがあれくらい簡単じゃないのか
つまりどうしたいかというと
助けてくださいお願いします
2017/07/30(日) 14:31:49.48ID:0PJrZm1n
>>528
Linux インストールしちゃえよ
530デフォルトの名無しさん
垢版 |
2017/07/30(日) 14:47:05.86ID:bW/sP0k9
>>528
Javaはどんな環境でやってるんだ?
それに近いC環境がとっつきやすいと思うぞ
2017/07/30(日) 14:48:46.05ID:1+DcPeTw
>>528
とりあえずプロジェクトを新規作成して、テンプレートからWin32コンソールアプリケーションを選択、オプションで空のプロジェクトをチェックする
その後、ソースファイルに新しい項目を追加してC++ファイルを選択
この時デフォルトではC++(*.cpp)が選択されるので、気になるなら拡張子を*.cに変更すればC言語のソースが記述できる
2017/07/30(日) 15:22:25.39ID:W8z6HKGT
>>530
【Java】ゲームプログラミング超入門: http://www.youtube.com/playlist?list=PLJ86MSrhnFKVQPf-E8y0FZKv7uzR4L4Dt
この動画の人にずっとついていってやってた
Part32くらいで少し飽きて一二週間離してて久しぶりにやったら結果が違っててよくわからなくなって別のやつやろうとしてた
2017/07/30(日) 16:31:40.47ID:FGe2lUf3
A[j]のjの型は size_t か?
2017/07/30(日) 17:51:36.41ID:AatiOL5G
有名な土方プログラマーの、T Umezawa の動画だろw

Java, C# を、テキストエディタで書いて、端末でコンパイルする
2017/07/30(日) 18:00:05.83ID:2PlgEyLl
>>533
配列のサイズの範囲内ならなんでもいい
536デフォルトの名無しさん
垢版 |
2017/07/30(日) 20:43:35.11ID:OOsADo1S
>>528
gcc入れろ。
2017/07/30(日) 22:04:46.57ID:7dPqlOSS
tcc オススメ
2017/07/30(日) 22:18:32.51ID:pLyoXQEm
>>528
自分の場合はcygwinでgcc使ってる。インストール楽だし
2017/07/30(日) 23:12:47.40ID:W8z6HKGT
>>536
>>538
やっぱGCCがいいのかな
でもなんかVS2017使いたいんだよね
一回入れてみたことあるけどなんかよくわからんというか
その点VS2017は安心するというか
使ったことないけど
2017/07/31(月) 00:11:52.08ID:M3mLjUUM
clコマンド使えばいいんじゃねえのか

IDEの機能なんて初心者は1%も使えない
普通のエディタでも初心者だと5〜10%くらいの機能しか使えない
541デフォルトの名無しさん
垢版 |
2017/07/31(月) 05:37:23.56ID:VZjnFU9V
>>539
普通のコマンドプロンプト出して、↓のバッチファイルを実行するとclが使えるようになる。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

cl your_program.cpp /EHsc
2017/07/31(月) 08:29:21.54ID:XaGlTjBV
プロジェクト作成
http://i.imgur.com/7qtR3n9.png
http://i.imgur.com/ZgnClpW.png
http://i.imgur.com/bNyynXB.png
http://i.imgur.com/8aLQd1Y.png
http://i.imgur.com/KTIzIfq.png
http://i.imgur.com/yKIKgn8.png
http://i.imgur.com/Zi9GQTT.png
http://i.imgur.com/owrBvd7.png
2017/07/31(月) 08:29:31.01ID:XaGlTjBV
コーディング、ビルド
http://i.imgur.com/nnrqbkH.png
http://i.imgur.com/djr81Jj.png
http://i.imgur.com/HyI9a1R.png
2017/07/31(月) 08:29:39.14ID:XaGlTjBV
実行、デバッグ
http://i.imgur.com/M2aVKo8.png
http://i.imgur.com/ZtiQAYM.png
http://i.imgur.com/TnFClZ0.png
545kadesu
垢版 |
2017/07/31(月) 10:32:48.65ID:RVdenN8P
Selenium WebDriverでHTTP refererを設定する方法をご教授下さい。
chromeを使用しています。

■やりたい事
http://referer.com/http://target.com/

■実装イメージ
options->AddArgument("--referer=http://referer.com/";);
driver->Navigate()->GoToUrl("http://target.com/";);

■環境
Win7 64bit
visual studio
Chrome driver
2017/07/31(月) 10:37:24.99ID:yrizDXBC
>>542-544
ってVS2017だけ?
もしかしてVScode入れる意味なかった?
547デフォルトの名無しさん
垢版 |
2017/07/31(月) 18:53:16.57ID:Y/tHh3+o
>>539
別にVSでも良いけど、差し当たっては新規作成とビルド->実行くらいは覚えんと。
(デジタルネイティブって言葉はどこ行ったんだろう。。。30代の自分が子供の頃でも迷った記憶は無いのに)

新規だけど、何も無いところから初めたい。
新規作成で空の何とか選べば意図通りに行きそう?とか、直感が働くのがデジタルネイティブの筈なんだが。

最初はcppファイルでCの勉強とかでも良いと思う。
むしろその方が型にうるさいから好都合だし。
2017/07/31(月) 21:16:14.24ID:v4rHNYrD
リアルなプログラミングネイティブなのはベーマガ世代だけだよ。
549デフォルトの名無しさん
垢版 |
2017/07/31(月) 21:53:07.86ID:VZjnFU9V
トラ技世代はどうなるんだよ
2017/07/31(月) 22:05:43.56ID:v4rHNYrD
ネイティブになるには小中学生時代に大量のコードを読む必要があるから。
その頃からトラ技読んでたらリアルデジタルネイティブになれるだろうな。
おれは回路はスラスラ読めない、書けない。このコンデンサは何用で〜とか考えないと無理。
母国語と同じ感覚、ネイティブになるには高校からじゃ遅すぎるよ。
2017/07/31(月) 22:05:52.73ID:KcGONOHk
Z80とメモリとPIOの回路図から始まるんですかい
552デフォルトの名無しさん
垢版 |
2017/07/31(月) 22:12:45.15ID:VZjnFU9V
>>550
ごめんな、俺は社会人デビュー後だ
学生時代はhFEすら知らなかった
553デフォルトの名無しさん
垢版 |
2017/07/31(月) 22:18:29.43ID:h/AGTSOY
バックアップ活用テクニック
2017/07/31(月) 22:24:57.05ID:7wcG+43N
紙テープみて、「ここバグだよ」ってぼそっと言う人
2017/07/31(月) 22:29:30.63ID:nnrvrhsw
学生の頃はZ80や6809のアセンブリを手書きしてハンドアセンブルしてたなあ
>>523で書き込んだスタックの構造の違いに気付いたのもその頃
2017/07/31(月) 23:15:45.49ID:MZt0w9cd
Cマガ復活させればここの難民は少しは救われるかな
2017/08/01(火) 05:31:22.97ID:o6jic4cS
CJJ かDDJでも良いけど
558デフォルトの名無しさん
垢版 |
2017/08/01(火) 06:09:11.07ID:CJO4kzTH
ざべ
2017/08/01(火) 06:45:19.65ID:bsIAKS/0
ハード指向なら トラ技
ソフト指向なら Interface

最近はかなり曖昧になってきてるけど…
2017/08/01(火) 14:13:56.93ID:dby33sg7
>> 557-558
それなんですか?
561デフォルトの名無しさん
垢版 |
2017/08/01(火) 14:36:29.29ID:CJO4kzTH
ざべ=THE BASIC 技術評論社
元々は名のとおりBASICの雑誌だったが
いつしかオタッキーなPC雑誌へと変貌していった
http://ikura.2ch.net/test/read.cgi/i4004/1010850340/
2017/08/01(火) 16:13:23.83ID:8vfI5Dp4
CJJ
http://iss.ndl.go.jp/books/R100000002-I000000074061-00

DDJ
Dr. Dobb's Journal Japan
563デフォルトの名無しさん
垢版 |
2017/08/01(火) 22:24:59.83ID:DyBYTlGz
547だけど、ごめん。。。
変なおっさん呼び込んじゃったね。。。
2017/08/01(火) 22:38:50.29ID:vXOO0+4J
ここは同窓会みたいなものだから
昔話が大好きなんだよ
2017/08/01(火) 22:54:03.38ID:6pzqaY7a
実装の話にバズワードぶっこんでくるガキはすっこんでろ。
2017/08/02(水) 07:28:23.46ID:mfenbxuD
>>565
何をバズワードと思ったの?
2017/08/02(水) 09:02:58.28ID:ytmpxP9x
>>566
同窓会
2017/08/02(水) 09:17:35.26ID:a1RMIIdL
なんの実装の話だっけ?
2017/08/02(水) 10:49:51.86ID:nZqt0zvZ
Facebook
2017/08/02(水) 23:13:24.31ID:pW5qBrxf
Dr. 弩ブス Journal
571デフォルトの名無しさん
垢版 |
2017/08/03(木) 02:45:12.28ID:CXemL7CS
x^2+y^2=5をみたすx、yを求めたいんだけどどんなプログラムがええのかな
572デフォルトの名無しさん
垢版 |
2017/08/03(木) 02:45:35.24ID:CXemL7CS
ミス
x^2+y^2=25をみたす自然数x、yを求めたいんだ
2017/08/03(木) 03:13:34.90ID:2Hqooo+i
#include <stdio.h>
int main(void) {
int x, y;
for (x = 1; x <= 5; x++) { /* 与式の右辺が25なのでxの値は高々sqrt(25)=5、xの定義域は5以下 */
for (y = 1; y <= 5; y++) { /* 同じくyの定義域は5以下 */
if (x * x + y * y == 25) printf("x=%d y=%d\n", x, y); /* 求める解は x=3 y=4 または x=4 y=3 */
}
}
return 0;
}
2017/08/03(木) 06:50:15.59ID:84Bc5dj3
数学的には {3, 4}, {4, 3} なんてことはわかってるんだからそのまま表示するプログラムでもいい

なるべく応用が効くようなコードにしたいなら
>>573は色々と突っ込みどころが

sqrt(25)は手計算じゃなくてコードで示そう
素直にsqrtを使っても良いし、
x * x < 25
y * y < 25
という条件でもいい

計算オーダー的に二重ループもない
25がちょっと大きくなっただけで計算量がヤバイ
int y = (int)sqrt(25-x*x+.5);
としてから条件を満たすか調べると計算オーダーが減る
2017/08/03(木) 07:04:57.35ID:HZxS4C1U
You Ain't Gonna Need It
2017/08/03(木) 07:08:22.87ID:7weo7Xpr
Keep it simple, stupid
2017/08/03(木) 07:35:44.75ID:84Bc5dj3
だからこれで良いって言ってるだろ

#include <stdio.h>
int main(void) {
printf("x=4 y=3\n");
printf("x=3 y=4\n");
return 0;
}
2017/08/03(木) 07:41:51.07ID:84Bc5dj3
あ、日本語が読めないのね
Perdon!
2017/08/03(木) 07:54:23.54ID:FkeiaVGn
公開オナニーは宿題スレでやれ
2017/08/03(木) 07:56:39.62ID:2Hqooo+i
YAGNIとKISSか
そこまで意識した訳では無いけど>>573は適当そのもののコードだからな
汎用性は皆無と言ってもいいよ
正直、質問者の意図もよく分からんしな
2017/08/03(木) 08:25:09.96ID:3OMIPeoe
単なる課題だろう
ただ、発展形としてはいろいろ考えられる

ペル方程式 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%AB%E6%96%B9%E7%A8%8B%E5%BC%8F

ベル数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%83%99%E3%83%AB%E6%95%B0

カタラン数 - Wikipedia
ttps://ja.wikipedia.org/wiki/%E3%82%AB%E3%82%BF%E3%83%A9%E3%83%B3%E6%95%B0
582572
垢版 |
2017/08/03(木) 09:02:23.62ID:i8hgiPVK
うおおおおおおおおお答えてくれた人ありがとう

適当にスレ検索してここにたどり着いたけどスレチだったようだ ほんとにごめん 100万年ROMるわ
2017/08/03(木) 09:18:16.02ID:DNJcAlnm
>>574
例えば、50になるとヤバいか?
584デフォルトの名無しさん
垢版 |
2017/08/04(金) 23:42:56.37ID:RX2ZdH5Q
ガチ初心者の僕にポインタの使い道を教えてください
2017/08/04(金) 23:49:56.22ID:E/blHrew
配列と添え字でやりくりできてるうちは必要性がないぐらい
2017/08/05(土) 00:07:03.35ID:cTKQoLNW
広大なメモリー空間の海を自由に泳ぎ回りたい時
2017/08/05(土) 00:54:39.37ID:Xh3Z77YL
[s]scanfしたいとき
2017/08/05(土) 01:53:38.85ID:hIPGEPA7
ポインタは演算コストが安いから重宝する
2017/08/05(土) 02:13:08.60ID:ZBBOV18T
ポインタの演算コストって普通の整数演算と違うの?
2017/08/05(土) 02:22:37.47ID:AmDvMFkm
ポインタに+1したら1増えるのかよ?デバッガで値見てみ。
591デフォルトの名無しさん
垢版 |
2017/08/05(土) 05:11:53.62ID:dUt+j3iS
>>584
printf("Hello, C world!\n");
この一文でもう既にポインタを使っているわけだが?
2017/08/05(土) 05:22:24.07ID:6vPjJVmL
使ってるから何?
2017/08/05(土) 05:53:46.66ID:AmDvMFkm
ポインタの使い道を答えたら逆ギレするガチ初心者。
おそらくポインタを勘違いしてるからキレてんだろうな。
2017/08/05(土) 09:33:54.76ID:FQO/+BoZ
>590
char *で実験する様子が(ry
2017/08/05(土) 09:44:09.47ID:B4rhQgJR
>>591
初心者にありがちな間違い
ポインタと配列は区別しよう

関数に配列を渡した時の解釈について言及しているなら、ガチの初心者に対しては不適切
596デフォルトの名無しさん
垢版 |
2017/08/05(土) 09:59:39.56ID:dUt+j3iS
>>595
おまえも仮引数と実引数を区別しろ
597デフォルトの名無しさん
垢版 |
2017/08/05(土) 10:02:18.44ID:xVRX2iSI
void * に1を足す記述がエラーも警告も無しでコンパイル通ってしかも何事もなく1足されてたのを発見した時は驚いた。
gccってそういう仕様だったんだね。
2017/08/05(土) 11:10:13.55ID:gO/VMD2L
仮引数
実引数

何用語?
2017/08/05(土) 11:13:38.50ID:hIPGEPA7
いくらなんでも流石にそれぐらいは自分で調べて欲しいレベル
2017/08/05(土) 11:15:51.54ID:B4rhQgJR
>>598
Cの規格にはない用語だな
きっと別の言語なんだろう

文字列リテラルがポインタ wな謎言語
2017/08/05(土) 11:24:58.14ID:tl2KBfJf
仮引数と実引数はC用語じゃねえの?
2017/08/05(土) 11:32:07.13ID:jiOahgu4
仮引数と実引数はJIS X3010にも定義されている用語
仮引数はparameter、実引数はargument
ただ>>596が何を言いたいのかはよく分からん

要するに仮引数はプロトタイプ宣言などで仮に与える引数(型さえ明確なら何でもいい)のことで
実引数は式の中で実際に使われる引数(関数で実際に利用するので名前は重要)のこと
2017/08/05(土) 11:34:21.17ID:hIPGEPA7
>>600
アセンブラのオペランドにイミディエイト出来ないものはRO領域に格納されるのでアドレスが割り振られポインタ管理できる

>>601
言語固有の用語ではなく構造化プログラミングの用語
2017/08/05(土) 11:35:58.99ID:B4rhQgJR
ああ、argumentとparameterをJISはそう訳してるのか
それはすまん
2017/08/05(土) 11:37:18.40ID:B4rhQgJR
>>603
ぷぷぷ
必死だな 配列とポインタが違うって事 知ってるかい? w
2017/08/05(土) 11:40:54.82ID:B4rhQgJR
なんか、昔はポインタと配列の区別を知らない筆者の書いた入門書で障害児が量産されたと聞いたが
その中の一人かな
2017/08/05(土) 11:41:33.20ID:hIPGEPA7
知っていますよ
2017/08/05(土) 11:50:23.17ID:B4rhQgJR
>>607
> アセンブラのオペランドにイミディエイト出来ないものはRO領域に格納されるのでアドレスが割り振られポインタ管理できる
知っているとは思えない発言なんだが
2017/08/05(土) 11:54:45.67ID:AmDvMFkm
RO領域って何?
2017/08/05(土) 11:59:40.46ID:hIPGEPA7
>>608

>文字列リテラルがポインタ wな謎言語

なぜ文字列リテラルがポインタだと謎な言語なのでしょうか?
また>>608のその文のどの辺りが間違っていますか?

後学までにご指摘頂けるとありがたいです。
2017/08/05(土) 12:03:38.04ID:hIPGEPA7
>>609
ReadOnly領域です
まぁ割り当て方はリンカ次第ですが
2017/08/05(土) 12:32:48.74ID:B4rhQgJR
>>610
文字列リテラル即ち配列
配列とポインタは異なるもの
∴ それを同じとするのは謎言語

> 後学までにご指摘頂けるとありがたいです。
ROなんて決まってねーし
即値で表現できない(struct foo){1,2,3}なんてのはアドレス欲しかったら&で取らなきゃいけねーし

何もかにもがデタラメ
2017/08/05(土) 12:38:11.97ID:GxOZ02Sj
なんかニワカ臭
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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