!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
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/
※前スレ
C言語なら俺に聞け 156
https://mevius.5ch.net/test/read.cgi/tech/1601271690/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 157
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0345-kMi9)
2021/06/28(月) 11:22:51.50ID:so+vl3vs0786デフォルトの名無しさん (スッップ Sda2-KSFI)
2021/10/26(火) 17:24:23.61ID:FOkaXEb/d 俺は日常Cと言ってる
787デフォルトの名無しさん (ブーイモ MMe6-wnYK)
2021/10/26(火) 17:30:07.02ID:TdYowdfsM788デフォルトの名無しさん (オッペケ Sr11-gYUW)
2021/10/26(火) 17:43:08.10ID:iznG3/8mr789デフォルトの名無しさん (ブーイモ MM0d-oXrF)
2021/10/26(火) 17:50:47.85ID:JgL6RS+zM またまたご冗談を
790デフォルトの名無しさん (ワッチョイ 81da-0EqD)
2021/10/26(火) 18:07:04.47ID:rbEPHvg70 >>788
馬鹿なんでしょうね
馬鹿なんでしょうね
791デフォルトの名無しさん (ワッチョイ 12bd-dMWn)
2021/10/26(火) 18:10:28.34ID:LRGmoAXR0 アルファベット一文字なら言語ってつける
Goだけなんか例外的なだけで
Goだけなんか例外的なだけで
792デフォルトの名無しさん (ワッチョイ 81da-0EqD)
2021/10/26(火) 18:13:16.33ID:rbEPHvg70 >>791
これって日本特有なんですかね
これって日本特有なんですかね
793デフォルトの名無しさん (テテンテンテン MMe6-Rw6J)
2021/10/26(火) 18:19:10.90ID:l/KP9TR6M 普通に短すぎる識別子の弊害だろ
言語付けとけば>>777のレスは無かった
言語付けとけば>>777のレスは無かった
794デフォルトの名無しさん (ワッチョイ 65bb-WU2P)
2021/10/26(火) 19:33:22.81ID:M1juxUvT0 日本語ではC言語で検索しやすくなるが外国はどうしてんだ?
C lang とかで検索してるのかな?
C lang とかで検索してるのかな?
795デフォルトの名無しさん (スッップ Sda2-KSFI)
2021/10/26(火) 19:47:06.75ID:FOkaXEb/d 英語圏でもC languageとは言うね
796デフォルトの名無しさん (ワッチョイ a236-WU2P)
2021/10/26(火) 21:52:27.56ID:ucHGO5Lk0 アセンブリ言語って自分的には違和感ないけど業界的にはどうなの?
797デフォルトの名無しさん (ワッチョイ 2eb2-8Piu)
2021/10/26(火) 21:56:53.26ID:ch+2e+/f0 普通だね
アセンブラ言語でもどっちでも
しょせんカタカナだし
ドヤるとバカっぽいから放置
アセンブラ言語でもどっちでも
しょせんカタカナだし
ドヤるとバカっぽいから放置
798デフォルトの名無しさん (ワッチョイ 13ad-BvZE)
2021/10/30(土) 00:17:48.25ID:0q4JizrL0 もう英字一文字の言語は飽和状態だからこれからは平仮名一文字とか漢字一文字の言語名にした方が良いな。
799デフォルトの名無しさん (ワッチョイ 13ad-OgfA)
2021/10/30(土) 00:23:08.83ID:0q4JizrL0 ʗ言語
800デフォルトの名無しさん (ワッチョイ 0bb2-JVmF)
2021/10/30(土) 08:25:14.25ID:HlbDM8n/0 ツー言語 (゚∀゚)
801デフォルトの名無しさん (スップ Sd73-fCHU)
2021/10/30(土) 11:53:47.66ID:A30JUN42d802デフォルトの名無しさん (ワッチョイ 13ad-BvZE)
2021/10/30(土) 17:29:52.20ID:0q4JizrL0 私意言語
803デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 18:01:56.38ID:zJlZfWf60804デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 18:03:58.48ID:zJlZfWf60 luaって調べたら月の画像が出てきてめちゃくちゃ怖いぞ
805デフォルトの名無しさん (オッペケ Src5-GNc3)
2021/10/30(土) 19:36:45.48ID:d9y/i02Wr 月が怖いってサテライトキャノンでも撃たれたのか?
806デフォルトの名無しさん (アウアウウー Sa9d-48dE)
2021/10/30(土) 19:51:07.93ID:lpthGY+1a 月を怖がる人ってたまにいるけど
前世とか今世で悪いことでもしたんかね
前世とか今世で悪いことでもしたんかね
807デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 20:22:41.40ID:zJlZfWf60 天体の画像が怖い
808ハノン ◆QZaw55cn4c (NZ 0H63-jJ2N)
2021/10/30(土) 20:27:03.94ID:nIglmucmH809デフォルトの名無しさん (テテンテンテン MMeb-uh0P)
2021/10/30(土) 20:59:50.65ID:f9Pytl6VM お仕置きでもされたのかな
810デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 21:01:00.69ID:zJlZfWf60 天体恐怖症なんやワイ
木星とか海王星とか怖い
木星とか海王星とか怖い
811デフォルトの名無しさん (オッペケ Src5-GNc3)
2021/10/30(土) 22:33:29.21ID:d9y/i02Wr 地球は恐くないん?
812デフォルトの名無しさん (ワッチョイ 1363-BvZE)
2021/10/30(土) 23:11:54.45ID:w/6Ssgd00 裏側にいる事に気がつくと、落ちてしまうそうだ
813デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 23:41:41.51ID:zJlZfWf60814デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 23:42:05.22ID:zJlZfWf60 火星の衛星とかも怖いです
歪な形してるやつ
歪な形してるやつ
815デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/30(土) 23:43:09.25ID:zJlZfWf60 冥王星の最新画像見たけどめちゃくちゃ怖くて直視できなかった
816デフォルトの名無しさん (ワッチョイ 81b2-JVmF)
2021/10/31(日) 09:06:05.96ID:eEOPPlKd0 アロコスなんかカワイイ形してんじゃん
817デフォルトの名無しさん (アウアウウー Sa9d-48dE)
2021/10/31(日) 11:07:20.50ID:dKAtRzTxa 乙py
乙py
乙py
818デフォルトの名無しさん (アウアウウー Sa9d-48dE)
2021/10/31(日) 11:30:55.69ID:dKAtRzTxa819デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/31(日) 11:33:04.24ID:xmsO/hLH0 >>818
グロ
グロ
820デフォルトの名無しさん (ワッチョイ 1363-BvZE)
2021/10/31(日) 11:46:46.80ID:TjuXDVeD0 NHK-BSプレミアム『グレートネイチャー』の宣伝臭が鼻につくくらいで
扱っている題材は台湾の自然、どこがグロなんだ?
扱っている題材は台湾の自然、どこがグロなんだ?
821デフォルトの名無しさん (ワッチョイ b11b-lV4V)
2021/10/31(日) 14:17:04.25ID:xmsO/hLH0 >>820
地球の中心コアへの旅っていう関連動画がグロい
地球の中心コアへの旅っていう関連動画がグロい
822デフォルトの名無しさん (ワッチョイ 13ad-BvZE)
2021/11/01(月) 03:55:44.21ID:6HuVbq6K0 饅頭怖い
823デフォルトの名無しさん (ワッチョイ 2bbd-ruXn)
2021/11/01(月) 11:25:10.37ID:/Zy4WfCe0 lu分解をc言語でやりたく、次のようなコード(1部分になります)を書いたのですが、y0の値が0.8になるはずなのに全く違うものとなってしまいます。原因が全くわからないのですが、どこを改良すればよいのでしょうか。
for(int n = 1; n <= M+1; n++){
t = n*dt;
for(int i = 0; i <= N; i++){
x[i] = 0.0;
}
/* Ax = uを解く */
/* Ly = u */
y[0] = u[0]/l[0][0];
for (int i = 1; i <= N; i++){
y[i] = (u[i] - l[1][i]*y[i-1])/l[0][i];
}
/* Ux = y */
x[N] = y[N];
for (int i = N-1; i >= 0; i--){
x[i] = y[i] - m[i]*y[i+1];
}
/* 更新 */
for(int i = 0; i <= N; i++){
u[i] = x[i];
}
}
for(int n = 1; n <= M+1; n++){
t = n*dt;
for(int i = 0; i <= N; i++){
x[i] = 0.0;
}
/* Ax = uを解く */
/* Ly = u */
y[0] = u[0]/l[0][0];
for (int i = 1; i <= N; i++){
y[i] = (u[i] - l[1][i]*y[i-1])/l[0][i];
}
/* Ux = y */
x[N] = y[N];
for (int i = N-1; i >= 0; i--){
x[i] = y[i] - m[i]*y[i+1];
}
/* 更新 */
for(int i = 0; i <= N; i++){
u[i] = x[i];
}
}
824デフォルトの名無しさん (エムゾネ FF33-48dE)
2021/11/01(月) 12:00:24.14ID:z/x9VzKbF int → double または float
825デフォルトの名無しさん (ワッチョイ 1369-flnY)
2021/11/01(月) 13:05:24.25ID:qmVDupeY0 x, y, l, m, u の宣言で添え字のとりえる範囲分はちゃんと確保してる?
(lu分解として正しいかどうかはおいといて)ループのコードから
x 0..N まで → 最低限 double x[N+1];
y 0..N まで → 最低限 double y[N+1];
u 0..N まで → 最低限 double m[N+1];
m 0..N-1 まで → 最低限 double m[N];
l [0][0]..[1][N] まで → 最低限 double l[2][N+1];
(lu分解として正しいかどうかはおいといて)ループのコードから
x 0..N まで → 最低限 double x[N+1];
y 0..N まで → 最低限 double y[N+1];
u 0..N まで → 最低限 double m[N+1];
m 0..N-1 まで → 最低限 double m[N];
l [0][0]..[1][N] まで → 最低限 double l[2][N+1];
826デフォルトの名無しさん (ワッチョイ 2bbd-ruXn)
2021/11/01(月) 15:07:15.16ID:/Zy4WfCe0 最初に宣言して確保してるので、大丈夫だと思うんですが、、
いちおうx,y,l,m,uをそれぞれ出力してみたのですが、yだけ間違えた値になってしまいます。
ループの順番とかがおかしいんですかね?
いちおうx,y,l,m,uをそれぞれ出力してみたのですが、yだけ間違えた値になってしまいます。
ループの順番とかがおかしいんですかね?
827デフォルトの名無しさん (ワッチョイ 13ad-BvZE)
2021/11/01(月) 19:03:15.19ID:6HuVbq6K0 全ての変数の宣言を書け
828デフォルトの名無しさん (ワッチョイ 1901-JVmF)
2021/11/01(月) 20:58:39.67ID:6+jC3RjR0 最小限再現できるコードを書いてもらわんと指摘することはできんねぇ
(そして最小限再現にシェイプアップする過程でやらかしを見つける)
(そして最小限再現にシェイプアップする過程でやらかしを見つける)
829デフォルトの名無しさん (ワッチョイ 6910-7alp)
2021/11/02(火) 07:44:51.26ID:I7k+rE/i0 >lu分解
java版?なら見つかった。
ttps://qiita.com/edo_m18/items/1d67532bed4a083cddb3
java版?なら見つかった。
ttps://qiita.com/edo_m18/items/1d67532bed4a083cddb3
830デフォルトの名無しさん (エムゾネ FF33-48dE)
2021/11/02(火) 10:38:39.23ID:px0qcy1yF831デフォルトの名無しさん (ワッチョイ 81b2-JVmF)
2021/11/03(水) 06:47:18.51ID:biZn6gZT0 小学生の頃から知ってたことばかりでウルトラつまんねえ番組だ
832デフォルトの名無しさん (ワッチョイ 515f-Ds5/)
2021/11/07(日) 10:08:30.22ID:gNBrcBZD0 サイコパスゲイ病人菊永裕太郎
833デフォルトの名無しさん (ワッチョイ f59b-bQ3l)
2021/11/08(月) 14:05:50.44ID:QzkUvy+x0834デフォルトの名無しさん (ワッチョイ a37d-IZSS)
2021/11/13(土) 19:10:26.04ID:EXpCOp4b0 int main() {
return 0;
}
いきなりこれの意味がわかりません。解説によるとゼロを返して正常終了する。
とかなんとかなんですが、どういう意味でしょうか。
オンライン上にゼロの意味の解説が見つかりません。
return 0;
}
いきなりこれの意味がわかりません。解説によるとゼロを返して正常終了する。
とかなんとかなんですが、どういう意味でしょうか。
オンライン上にゼロの意味の解説が見つかりません。
835デフォルトの名無しさん (ワッチョイ e336-wd7R)
2021/11/13(土) 19:43:45.28ID:Q3rklS0i0 大抵の解説では「OSに返す値」となってる。
プログラムが正常終了したら 0。
異常終了や目的の処理が出来なかったときには0以外を返すのが慣例。
Linuxならシェルで echo $?
Windowsならコマンドプロンプト/バッチファイルで echo %ERRORLEVEL%
で確認できる・・・らしい。
0以外を受け取ったからとOSが何か特別な処理をするわけではない。
プログラムが正常終了したら 0。
異常終了や目的の処理が出来なかったときには0以外を返すのが慣例。
Linuxならシェルで echo $?
Windowsならコマンドプロンプト/バッチファイルで echo %ERRORLEVEL%
で確認できる・・・らしい。
0以外を受け取ったからとOSが何か特別な処理をするわけではない。
836デフォルトの名無しさん (ワッチョイ a5da-WW/G)
2021/11/13(土) 19:53:04.62ID:NDPTYcvp0837デフォルトの名無しさん (ワッチョイ 2302-lRA9)
2021/11/13(土) 20:53:19.24ID:pG0a2gxf0 この段階では
0をかえす
そして
正常終了する
ぐらいの認識でいいんじゃないの?
別にどんな整数を返しても正常終了するわけだし
0をかえす
そして
正常終了する
ぐらいの認識でいいんじゃないの?
別にどんな整数を返しても正常終了するわけだし
838はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2b3e-wd7R)
2021/11/13(土) 20:56:10.46ID:FTD0k+Bx0 >>834-835
厳密にいえば、言語仕様上では
・ 0 又は EXIT_SUCCESS の場合は成功終了であることを処理系定義の方法で返す
・ EXIT_FAILURE の場合は失敗終了であることを処理系定義の方法で返す
・ それら意外の場合には返される状態は処理系定義とする
という規則になっている。
どのように解釈されるかは言語仕様の側でははっきりとは決めずにホスト環境 (普通は OS のこと) や処理系の都合次第なので、
言語よりは OS の資料にあたるほうがわかりやすいかもしれない。
言語仕様として確実に保証してるのは少なくとも成功したのか失敗したのかだけは返せる (受け取るかどうかは知らんけど) ってだけだね。
POSIX (Unix 系 OS) では exit status と呼んでるけど、
Windows では error level とか exit code と言ってる。
厳密にいえば、言語仕様上では
・ 0 又は EXIT_SUCCESS の場合は成功終了であることを処理系定義の方法で返す
・ EXIT_FAILURE の場合は失敗終了であることを処理系定義の方法で返す
・ それら意外の場合には返される状態は処理系定義とする
という規則になっている。
どのように解釈されるかは言語仕様の側でははっきりとは決めずにホスト環境 (普通は OS のこと) や処理系の都合次第なので、
言語よりは OS の資料にあたるほうがわかりやすいかもしれない。
言語仕様として確実に保証してるのは少なくとも成功したのか失敗したのかだけは返せる (受け取るかどうかは知らんけど) ってだけだね。
POSIX (Unix 系 OS) では exit status と呼んでるけど、
Windows では error level とか exit code と言ってる。
839デフォルトの名無しさん (JP 0Hab-x5sK)
2021/11/13(土) 22:33:17.66ID:uR+eQ86NH 単独で使う場合は関係ないけど
シェルとかバッチファイルから呼び出す場合にエラーや望まない結果だったら処理を中断とかしたい場合に
ちゃんと値を返しておくと便利になる
シェルとかバッチファイルから呼び出す場合にエラーや望まない結果だったら処理を中断とかしたい場合に
ちゃんと値を返しておくと便利になる
840デフォルトの名無しさん (ワッチョイ 2363-wd7R)
2021/11/13(土) 22:42:47.32ID:J/2HuwPl0 パイプ使うときはどう利用すればいい?
841デフォルトの名無しさん (ワッチョイ 1d0b-4vRU)
2021/11/13(土) 22:51:27.93ID:TY5ABTi00 棒を挟むんだよ
842ハノン ◆QZaw55cn4c (ワッチョイ 9be9-KVNp)
2021/11/13(土) 22:53:39.30ID:DyUYxUU00 >>839
呼び出したプログラムが返してくる値を使うプログラムとしては make がありますね…
呼び出したプログラムが返してくる値を使うプログラムとしては make がありますね…
843デフォルトの名無しさん (ワッチョイ 9521-EbYB)
2021/11/14(日) 09:01:01.66ID:TENET21t0 >>834
補足として、CのAPIにも失敗時に0を割り当てる場合と、成功時に0を割り当てる場合がある。
エラーの要因なんかを意識したい体系では後者も普通に使われるが、同じコード内で前者と
混在せざえるをえない事もある。マクロなんかを使った記述を意識しないとハマるぞw
補足として、CのAPIにも失敗時に0を割り当てる場合と、成功時に0を割り当てる場合がある。
エラーの要因なんかを意識したい体系では後者も普通に使われるが、同じコード内で前者と
混在せざえるをえない事もある。マクロなんかを使った記述を意識しないとハマるぞw
845デフォルトの名無しさん (ワッチョイ 1be7-4vRU)
2021/11/14(日) 13:25:42.20ID:EUNDgDvQ0846デフォルトの名無しさん (エムゾネ FF43-09aj)
2021/11/14(日) 13:59:30.15ID:E00roTgyF847ハノン ◆QZaw55cn4c (ワッチョイ 9be9-KVNp)
2021/11/14(日) 14:07:31.05ID:5CSGBVhH0 >>846
リンクされるスタートアップが返り値の存在を前提にしているというのに、main() ごときが返り値の有無を指定するなんて傲慢じゃないですかぁぁぁぁ!
リンクされるスタートアップが返り値の存在を前提にしているというのに、main() ごときが返り値の有無を指定するなんて傲慢じゃないですかぁぁぁぁ!
848はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/14(日) 15:32:15.51ID:A4GQ1/1N0 main の型を変則的にするくらいなら main をエントリーポイントにしない
(エントリーポイントの関数を別の名前にする) ほうが好ましいと個人的には思う。
言語仕様の外 (処理系定義) で定義された方法を使おうとしていることがわかりやすいので。
(エントリーポイントの関数を別の名前にする) ほうが好ましいと個人的には思う。
言語仕様の外 (処理系定義) で定義された方法を使おうとしていることがわかりやすいので。
849デフォルトの名無しさん (スップ Sd03-EoEW)
2021/11/15(月) 08:57:20.76ID:ELwWgVHxd >>846
俺もそう思う
俺もそう思う
850デフォルトの名無しさん (スップ Sd03-EoEW)
2021/11/15(月) 08:59:15.64ID:ELwWgVHxd 実行開始点は◯◯関数とドキュメントのどこに書こうか悩まずに済むならそうしたい
851834 (ワッチョイ a37d-Itmb)
2021/11/15(月) 18:18:16.98ID:oeHKaDHh0 ただの慣例なんですね、ご回答ありがとうございました。
852デフォルトの名無しさん (ワッチョイ 1554-WW/G)
2021/11/15(月) 19:21:59.60ID:BFf+frEV0 C言語初心者です。sleepを使って一文字ずつ
2秒ごとに表示したいのですが
Windowsの端末だとうまくいくのですが、
Ubuntuだと8秒後にまとめてHelloと一度に
表示されてしまいます。ubuntuでも
windowsのように一文字ずつ表示させたいのですが
できないのでしょうか?コンパイラはGCCです。
#include <stdio.h>
#include <unistd.h>
int main (){
printf("H");
sleep(2);
printf("e");
sleep(2);
printf("l");
sleep(2);
printf("l");
sleep(2);
printf("o\n");
return 0;
}
2秒ごとに表示したいのですが
Windowsの端末だとうまくいくのですが、
Ubuntuだと8秒後にまとめてHelloと一度に
表示されてしまいます。ubuntuでも
windowsのように一文字ずつ表示させたいのですが
できないのでしょうか?コンパイラはGCCです。
#include <stdio.h>
#include <unistd.h>
int main (){
printf("H");
sleep(2);
printf("e");
sleep(2);
printf("l");
sleep(2);
printf("l");
sleep(2);
printf("o\n");
return 0;
}
853ハノン ◆QZaw55cn4c (ワッチョイ 9be9-KVNp)
2021/11/15(月) 19:27:49.92ID:a976/UsH0 >>852
printf('A'); fflush(stdout); はいかが?
printf('A'); fflush(stdout); はいかが?
854デフォルトの名無しさん (ワッチョイ 1dbb-lRA9)
2021/11/15(月) 19:28:12.24ID:Xr7xQZWT0 printfとsleepの間に↓
fflush(stdout);
fflush(stdout);
855デフォルトの名無しさん (ワッチョイ 1554-WW/G)
2021/11/15(月) 19:45:10.08ID:BFf+frEV0856はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/15(月) 23:18:43.35ID:LEZCO+bp0 >>852
どちらの挙動も言語仕様的にはアリ。
ストリームが対話型装置を参照していると判定できて、かつその場合に限り完全バッファリングすることになっていて、
逆に言えば対話型装置 (この場合はコンソール) に繋がっているときはラインバッファリングかもしれないし、
バッファリング無しかもしれない。
フラッシュを明示的に指示するのでもよいが、 setvbuf 関数でバッファリングをしないように設定することもできる。
どちらの挙動も言語仕様的にはアリ。
ストリームが対話型装置を参照していると判定できて、かつその場合に限り完全バッファリングすることになっていて、
逆に言えば対話型装置 (この場合はコンソール) に繋がっているときはラインバッファリングかもしれないし、
バッファリング無しかもしれない。
フラッシュを明示的に指示するのでもよいが、 setvbuf 関数でバッファリングをしないように設定することもできる。
857はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/15(月) 23:20:10.09ID:LEZCO+bp0858デフォルトの名無しさん (ワッチョイ 2363-wd7R)
2021/11/15(月) 23:52:40.37ID:9q/xF8xE0 低レベルの出力関数使ってバッファリングを回避してみる、とか
859デフォルトの名無しさん (ワッチョイ 4b46-Itmb)
2021/11/16(火) 21:41:05.99ID:vUDwceGd0 lintの無い事い今更気付いたのだが、代替何?
860デフォルトの名無しさん (ワッチョイ 2301-riRZ)
2021/11/16(火) 23:22:15.69ID:hcv5mNbC0 >>859
clion
clion
861デフォルトの名無しさん (アウアウウー Saa9-09aj)
2021/11/17(水) 02:29:57.06ID:+JwFzM8Ra >>851
int main(){
int a=0;
return a;
}
と
void main(){
int a=0;
}
をそれぞれ asm 付きでコンパイルして比較してみ
判ったら次は a=0; を inline にしてみ
int main(){
int a=0;
return a;
}
と
void main(){
int a=0;
}
をそれぞれ asm 付きでコンパイルして比較してみ
判ったら次は a=0; を inline にしてみ
862デフォルトの名無しさん (ガラプー KKab-UqSN)
2021/11/17(水) 16:44:53.52ID:802yK0wSK >>859
splint
splint
863はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/17(水) 17:37:06.80ID:R6z6I7690 >>859
コンパイラが細かくチェックするようになったから lint の出番がなくなった。
gcc や clang なら -fsyntax-only オプションを付けると文法のチェックまでで段階を止める。
必要な警告オプションを付けた上でこれを使えば古い時代の lint より厳しいくらいだと思う。
(ちなみに -Wall や -Wextra を付けても全ての警告が有効になるわけではない。)
コンパイラが細かくチェックするようになったから lint の出番がなくなった。
gcc や clang なら -fsyntax-only オプションを付けると文法のチェックまでで段階を止める。
必要な警告オプションを付けた上でこれを使えば古い時代の lint より厳しいくらいだと思う。
(ちなみに -Wall や -Wextra を付けても全ての警告が有効になるわけではない。)
864ハノン ◆QZaw55cn4c (ワッチョイ 9be9-KVNp)
2021/11/17(水) 19:11:13.17ID:Kdlo9yNJ0865デフォルトの名無しさん (スップ Sd03-x5sK)
2021/11/17(水) 20:49:44.01ID:U3uLHNTwd 最近のコンパイラはミスタイプすると
「contが見つかりません、もしかしてcountのことですか?」みたいなことまで言ってくるもんなあ
グーグルかよ
「contが見つかりません、もしかしてcountのことですか?」みたいなことまで言ってくるもんなあ
グーグルかよ
867デフォルトの名無しさん (ワッチョイ dd10-+irO)
2021/11/18(木) 00:32:41.46ID:HOoxCKRv0 入門サイトで勉強しててこんな感じのコードがエラーになって
{
int a = 100;
printf("数値:%d アドレス:%x", a, &a);
}
gccのエラーをコピペで検索すると、&aはポインタだから、アドレス:%pだと回答がヒット。
コンパイラやバージョンによって挙動が違うのでしょうか?
{
int a = 100;
printf("数値:%d アドレス:%x", a, &a);
}
gccのエラーをコピペで検索すると、&aはポインタだから、アドレス:%pだと回答がヒット。
コンパイラやバージョンによって挙動が違うのでしょうか?
868はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/18(木) 00:55:33.69ID:ku1GvVZm0 >>867
言語仕様で未規定や処理系定義としている場合があって、
そういうのは処理系や実行環境の都合に合わせて決めていいことになってる。
そして「未定義」とされている場合は何が起こってもいいことになってるので、
暴走するかもしれないし、 OS が止めてくれるかもしれないし、しれっと意味不明の結果を出力するかもしれない。
たぶんそれは未定義に該当すると思う。
C の可変長引数は型チェックをゆるゆるにすることで実現されていて、
処理系の内実をわかってる人は言語仕様上の保証がない (けど実態としては問題がない) コードを書くのは普通にある。
パソコンで一般的に使われている呼び出し規約 (関数を呼出す機械語レベルの挙動の規則) だと
ポインタと (レジスタの幅以下の大きさの) 整数は同じ方法で渡すので問題にならないんだけど、
言語仕様では保証がない。
可変長引数の型チェックはゆるゆるなんだけど printf は頻出するからコンパイラが特別扱いで
少しチェックを厳しくしているのでエラーになることもあったりする。
まあ基本的には保証されてないのでやらないほうがいいよ。
言語仕様で未規定や処理系定義としている場合があって、
そういうのは処理系や実行環境の都合に合わせて決めていいことになってる。
そして「未定義」とされている場合は何が起こってもいいことになってるので、
暴走するかもしれないし、 OS が止めてくれるかもしれないし、しれっと意味不明の結果を出力するかもしれない。
たぶんそれは未定義に該当すると思う。
C の可変長引数は型チェックをゆるゆるにすることで実現されていて、
処理系の内実をわかってる人は言語仕様上の保証がない (けど実態としては問題がない) コードを書くのは普通にある。
パソコンで一般的に使われている呼び出し規約 (関数を呼出す機械語レベルの挙動の規則) だと
ポインタと (レジスタの幅以下の大きさの) 整数は同じ方法で渡すので問題にならないんだけど、
言語仕様では保証がない。
可変長引数の型チェックはゆるゆるなんだけど printf は頻出するからコンパイラが特別扱いで
少しチェックを厳しくしているのでエラーになることもあったりする。
まあ基本的には保証されてないのでやらないほうがいいよ。
869867 (ワッチョイ dd10-+irO)
2021/11/18(木) 01:52:34.49ID:HOoxCKRv0870はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a53e-wd7R)
2021/11/18(木) 02:23:30.05ID:ku1GvVZm0 逆に完全に言語仕様に沿っていても警告になる場合もあるし、
(基本的には警告が出ないようなコードのほうが綺麗ではあるが)
言語仕様的に OK なのか NG なのか、
とりあえず自分の実行環境で OK なのか NG なのかを正確に把握するのはかなり分かり難いと思う。
(基本的には警告が出ないようなコードのほうが綺麗ではあるが)
言語仕様的に OK なのか NG なのか、
とりあえず自分の実行環境で OK なのか NG なのかを正確に把握するのはかなり分かり難いと思う。
871デフォルトの名無しさん (ワッチョイ cb0e-4vRU)
2021/11/18(木) 02:53:45.75ID:SHW/gJRC0872デフォルトの名無しさん (スプッッ Sd93-HWhl)
2021/11/18(木) 10:38:56.92ID:7kNuqccRd 0から100までの整数のうち、17の倍数となる数の合計を求め、かつ途中の加算処理を出力するプログラムをつくったのですが、うまくいきません。
873デフォルトの名無しさん (スプッッ Sd93-HWhl)
2021/11/18(木) 10:39:42.31ID:7kNuqccRd うまくいかないのは過程を出力する処理の過程なのですが、どうしたらよいですか。
コードは以下です。
#include <stdio.h>
int main()
{
int i,sum=0;
for(i=17; i<=100; i=i+17) {
sum=sum+i;
printf("途中計算→%d\n", sum);
}
printf("合計=%d\n",sum);
return 0;
}
コードは以下です。
#include <stdio.h>
int main()
{
int i,sum=0;
for(i=17; i<=100; i=i+17) {
sum=sum+i;
printf("途中計算→%d\n", sum);
}
printf("合計=%d\n",sum);
return 0;
}
874デフォルトの名無しさん (ワッチョイ cb0e-4vRU)
2021/11/18(木) 10:49:25.32ID:SHW/gJRC0 ダッサいループ書いてないで公式立てたら?
875デフォルトの名無しさん (ワッチョイ e369-lRA9)
2021/11/18(木) 11:10:34.71ID:R1PabgqQ0876デフォルトの名無しさん (ワッチョイ cb0e-4vRU)
2021/11/18(木) 11:14:20.02ID:SHW/gJRC0 17から開始で17ずつ増やしてるだろ
0は17の倍数じゃないそうだが
0は17の倍数じゃないそうだが
877デフォルトの名無しさん (ワッチョイ 4bbb-fsgr)
2021/11/18(木) 11:32:07.83ID:RYwZiL190 >>873
何がどううまく行かないの?あってそうに見えるけど
何がどううまく行かないの?あってそうに見えるけど
878デフォルトの名無しさん (エムゾネ FF43-09aj)
2021/11/18(木) 14:40:44.78ID:/He/baLSF879デフォルトの名無しさん (エムゾネ FF43-09aj)
2021/11/18(木) 14:45:21.17ID:/He/baLSF >>873
printf("途中計算→%d, %d, %d\n", i / 17, i, sum);
printf("途中計算→%d, %d, %d\n", i / 17, i, sum);
880デフォルトの名無しさん (エムゾネ FF43-09aj)
2021/11/18(木) 14:45:34.58ID:/He/baLSF881デフォルトの名無しさん (スッップ Sd43-x5sK)
2021/11/18(木) 18:35:31.06ID:CfNf7HSld >>867
伝統的にポインタはintと同じメモリサイズなので昔はそう書いてた
そうなんだよな最近のコンパイラはprintfのフォーマットと引数をチェックしてるんだよな
もう慣れたが最初不思議な気がした
組み込みだと自分でprintf関数作ったり(標準だと使わない機能が多くて重すぎるから)するけどそんな時はどうなるのだろうとか
伝統的にポインタはintと同じメモリサイズなので昔はそう書いてた
そうなんだよな最近のコンパイラはprintfのフォーマットと引数をチェックしてるんだよな
もう慣れたが最初不思議な気がした
組み込みだと自分でprintf関数作ったり(標準だと使わない機能が多くて重すぎるから)するけどそんな時はどうなるのだろうとか
882デフォルトの名無しさん (ワッチョイ e2ad-+VBe)
2021/11/19(金) 00:07:30.77ID:tkL53aTR0 >>872
( ´_ゝ`)フーン
( ´_ゝ`)フーン
883デフォルトの名無しさん (ワッチョイ e2ad-+VBe)
2021/11/19(金) 00:11:12.00ID:tkL53aTR0 >>873
それでいいのでは?
それでいいのでは?
884はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 573e-+VBe)
2021/11/19(金) 00:18:54.40ID:bln5kEpJ0 64 ビット環境では LP64 や LLP64 (int とポインタの大きさが違う) が標準的になってしまったから
古いコードをそのまま持ってきたら通らないってことは割とよくあるよね。
古いコードをそのまま持ってきたら通らないってことは割とよくあるよね。
885デフォルトの名無しさん (ワッチョイ e2ad-+VBe)
2021/11/19(金) 00:37:21.78ID:tkL53aTR0 long と int (及び char *)を全て32bitとして扱っていて、辛うじてコンパイルは通るが決してまともに動かない
プログラムがあったので、しょうがないから gcc の -m32 と32bit用ライブラリで何とかした。何せ量が膨大で、
人力で直してたら多分何人か死んでたと思う。
プログラムがあったので、しょうがないから gcc の -m32 と32bit用ライブラリで何とかした。何せ量が膨大で、
人力で直してたら多分何人か死んでたと思う。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
