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.5ch.net/test/read.cgi/tech/1509107288/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 144
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 838a-3nWA)
2017/12/23(土) 19:33:43.89ID:dghfoRy20478デフォルトの名無しさん (ドコグロ MM3b-dVd5)
2018/01/26(金) 12:58:41.58ID:ZfLE6UH1M479デフォルトの名無しさん (アウアウカー Sa33-bnsf)
2018/01/26(金) 13:00:59.90ID:eO6EE38Oa >>476
それはどう実装されるかの問題。
まあしかし後付け感はあるな。配列はポインタにされちゃうのに構造体の中に配列入れると丸々渡せたりして。
まあ昔々に考えられて互換性を考慮して拡張されてきた言語なので仕方がないようにも思うが。
それはどう実装されるかの問題。
まあしかし後付け感はあるな。配列はポインタにされちゃうのに構造体の中に配列入れると丸々渡せたりして。
まあ昔々に考えられて互換性を考慮して拡張されてきた言語なので仕方がないようにも思うが。
480デフォルトの名無しさん (アウアウエー Saf2-oJ1J)
2018/01/26(金) 13:28:01.67ID:qmyxD0D3a >>477
最近のは引数NULLで桶
最近のは引数NULLで桶
481デフォルトの名無しさん (アウアウエー Saf2-oJ1J)
2018/01/26(金) 13:34:27.88ID:qmyxD0D3a >配列はポインタにされちゃうのに構造体の中に配列入れると丸々渡せたり
あほか
あほか
482デフォルトの名無しさん (ワッチョイ 3a12-fPTX)
2018/01/26(金) 13:45:10.76ID:x7oC2VaJ0 >>427
構造体が話を難しくしているのではないか?
単純に最初から二次元配列を使うだけでいいのでは
Ideone.com - i9PcuN - Online C Compiler & Debugging Tool
ttps://ideone.com/i9PcuN
gram schmidt {{2, 3, 4, 5},{ 7, 8, 9, 10},{ 20, 90, 78, 3},{6, 6, 7, 7}} - Wolfram|Alpha Results
ttp://m.wolframalpha.com/input/?i=gram+schmidt+%7B%7B2%2C+3%2C+4%2C+5%7D%2C%7B+7%2C+8%2C+9%2C+10%7D%2C%7B+20%2C+90%2C+78%2C+3%7D%2C%7B6%2C+6%2C+7%2C+7%7D%7D
>gschmidt 2 3 4 5 7 8 9 10 20 90 78 3 6 6 7 7
これで試すとwolframのと同じになる
構造体が話を難しくしているのではないか?
単純に最初から二次元配列を使うだけでいいのでは
Ideone.com - i9PcuN - Online C Compiler & Debugging Tool
ttps://ideone.com/i9PcuN
gram schmidt {{2, 3, 4, 5},{ 7, 8, 9, 10},{ 20, 90, 78, 3},{6, 6, 7, 7}} - Wolfram|Alpha Results
ttp://m.wolframalpha.com/input/?i=gram+schmidt+%7B%7B2%2C+3%2C+4%2C+5%7D%2C%7B+7%2C+8%2C+9%2C+10%7D%2C%7B+20%2C+90%2C+78%2C+3%7D%2C%7B6%2C+6%2C+7%2C+7%7D%7D
>gschmidt 2 3 4 5 7 8 9 10 20 90 78 3 6 6 7 7
これで試すとwolframのと同じになる
483デフォルトの名無しさん (ワッチョイ 3ad5-WBz1)
2018/01/26(金) 14:03:06.38ID:Q8oR1nja0 スタックがどうたら言ってるやつ
ジジイの昔話をそのまま受け売りしてるだけだな
ジジイの昔話をそのまま受け売りしてるだけだな
484デフォルトの名無しさん (アウアウカー Sa33-bnsf)
2018/01/26(金) 15:18:50.21ID:lz5gZOTMa >>481
何をアホと思ったのか詳細よろしく
何をアホと思ったのか詳細よろしく
485デフォルトの名無しさん (JP 0Haf-5dAg)
2018/01/26(金) 17:02:38.76ID:pySevT5fH 基本型とユーザー定義型の概念が理解出来てないところかな
486デフォルトの名無しさん (JP 0Haf-5dAg)
2018/01/26(金) 17:06:19.25ID:pySevT5fH 小手先のテクニックだけでなく概念そのものしっかり理解した方が良い
487デフォルトの名無しさん (スッップ Sdda-ZRsY)
2018/01/26(金) 17:12:00.37ID:ghv3+z6qd488デフォルトの名無しさん (ブーイモ MMaf-FYQJ)
2018/01/26(金) 18:02:06.76ID:rEWh5MIPM 主にDOS時代の話だなぁ
Sparcのアセンブラで説明する勇者は居らぬか
Sparcのアセンブラで説明する勇者は居らぬか
489愛知人
2018/01/26(金) 20:24:07.81 配列で要素間をまたいで先頭からnビットの位置から6bit取り出してintに入れるにはどうしますか?
490デフォルトの名無しさん (ブーイモ MMaf-xvHi)
2018/01/26(金) 20:31:38.70ID:QZv+kGezM 課題を丸投げするな。
自分なりの解を出して、もっと効率化できるかと聞くならあり。
自分なりの解を出して、もっと効率化できるかと聞くならあり。
>>489
一度に扱う便利な記述法はないから、地道に自分で 1 ビットずつ切り出すしかないのでは?
http://mevius.2ch.net/test/read.cgi/tech/1514772904/111
一度に扱う便利な記述法はないから、地道に自分で 1 ビットずつ切り出すしかないのでは?
http://mevius.2ch.net/test/read.cgi/tech/1514772904/111
492愛知人
2018/01/26(金) 20:35:58.71 >>491
ナカーマ(^人^)
ナカーマ(^人^)
493デフォルトの名無しさん (ササクッテロル Spab-JKdO)
2018/01/26(金) 20:47:46.02ID:uizSPI6cp 組み込み系のヒープってなーに?の環境だと、まだまだ自動変数はスタックに置かれてたりするぞ。
494デフォルトの名無しさん (ササクッテロル Spab-JKdO)
2018/01/26(金) 20:51:44.02ID:uizSPI6cp >>489
ビットフィールドを使う組み合わせ分だけunionしろ。
ビットフィールドを使う組み合わせ分だけunionしろ。
495デフォルトの名無しさん (ワッチョイ c78a-5dAg)
2018/01/26(金) 20:55:00.97ID:nXJEVt+40 C言語の登場当時に画期的だったのは構造体として自由に新しいデータ型を作り出すことが出来たことだった
C++では更にデータだけでは無くて関数まで含めたデータ型がクラスに発展してオブジェクトの概念にまで到達した
要は構造体は新しい概念をプログラムの世界に持ち込むための手段
ベクトルや多次元空間といった概念も構造体によってプログラム内で直接取り扱うことが出来る様になる
C++では更にデータだけでは無くて関数まで含めたデータ型がクラスに発展してオブジェクトの概念にまで到達した
要は構造体は新しい概念をプログラムの世界に持ち込むための手段
ベクトルや多次元空間といった概念も構造体によってプログラム内で直接取り扱うことが出来る様になる
496デフォルトの名無しさん (ワッチョイ b3b3-MCTD)
2018/01/26(金) 20:55:55.12ID:Qu3DLo0l0 配列の任意のところからの 6bit の抜出しってーと
Base64エンコードの実装か?
Base64エンコードの実装か?
497デフォルトの名無しさん (アウアウウー Sa77-rgA5)
2018/01/26(金) 20:57:29.63ID:UUEYCaGha498デフォルトの名無しさん (ワッチョイ b3b3-MCTD)
2018/01/26(金) 20:59:05.70ID:Qu3DLo0l0 まんま 491 だったのか
499デフォルトの名無しさん (ササクッテロル Spab-JKdO)
2018/01/26(金) 21:07:37.65ID:uizSPI6cp >>496
BASE64は3バイトを4つの文字に置き換えるんだから、3バイトづつ処理するコードを書けばいいんだよ。
4文字を3バイトに変える方も同じく4文字づつ処理するコードを書く。
そーすれば、必ず同じ位置からビットフィールド取り出す処理だけになる。
BASE64は3バイトを4つの文字に置き換えるんだから、3バイトづつ処理するコードを書けばいいんだよ。
4文字を3バイトに変える方も同じく4文字づつ処理するコードを書く。
そーすれば、必ず同じ位置からビットフィールド取り出す処理だけになる。
500デフォルトの名無しさん (アウアウウー Sa77-rgA5)
2018/01/26(金) 21:16:02.15ID:UUEYCaGha あれ?もしや俺の書いたお題を解くために質問してたのか?
ま、頑張れ。調べていけば何れわかる。
ま、頑張れ。調べていけば何れわかる。
501デフォルトの名無しさん (ワッチョイ 539f-fPTX)
2018/01/26(金) 22:04:34.58ID:KrxIIzDl0502デフォルトの名無しさん (ブーイモ MMaf-FYQJ)
2018/01/26(金) 22:34:35.80ID:rEWh5MIPM 今更EBCDIC(BASE64)の実装?うげぇ
503愛知人
2018/01/26(金) 22:36:08.45504デフォルトの名無しさん (ワッチョイ 87b6-uzZr)
2018/01/26(金) 22:56:37.84ID:dKJ1F5mn0 「ルール違反の残業には罰則を」安倍政権が成立を目指す「働き方改革関連法」を事前予習!
https://headlines.yahoo.co.jp/hl?a=20180125-00010003-abema-bus_all
長時間労働の是正へ「特別チーム」 厚労省、全国に設置
https://headlines.yahoo.co.jp/hl?a=20180125-00000010-asahi-soci
働き方改革、過半が「不満」 成功する企業の違いは
https://style.nikkei.com/article/DGXMZO25918060Z10C18A1000000?channel=DF180320167080
https://headlines.yahoo.co.jp/hl?a=20180125-00010003-abema-bus_all
長時間労働の是正へ「特別チーム」 厚労省、全国に設置
https://headlines.yahoo.co.jp/hl?a=20180125-00000010-asahi-soci
働き方改革、過半が「不満」 成功する企業の違いは
https://style.nikkei.com/article/DGXMZO25918060Z10C18A1000000?channel=DF180320167080
505デフォルトの名無しさん (ワッチョイ bab3-dVd5)
2018/01/26(金) 23:06:51.56ID:8m7gdhLr0 >>495
> C言語の登場当時に画期的だったのは構造体として自由に新しいデータ型を作り出すことが出来たことだった
PL/1, Pascalにもあったし、範囲型とかをサポートしないサブセットだよ?
むしろポインタを陽に使える方が画期的だったな
> C言語の登場当時に画期的だったのは構造体として自由に新しいデータ型を作り出すことが出来たことだった
PL/1, Pascalにもあったし、範囲型とかをサポートしないサブセットだよ?
むしろポインタを陽に使える方が画期的だったな
506デフォルトの名無しさん (ブーイモ MMaf-FYQJ)
2018/01/26(金) 23:34:31.60ID:rEWh5MIPM ポインタはPascalにもあるし、アドレスと紐ついているというのが
受けたんだと思うけどね
受けたんだと思うけどね
507デフォルトの名無しさん (ワッチョイ bab3-dVd5)
2018/01/26(金) 23:50:55.92ID:8m7gdhLr0 >>506
ああすまん、陽にって言うより自由に使えるって書いた方がよかったかな
ああすまん、陽にって言うより自由に使えるって書いた方がよかったかな
508デフォルトの名無しさん (ワッチョイ e39f-SpET)
2018/01/27(土) 05:09:48.31ID:ibqNKJrC0509デフォルトの名無しさん (ワッチョイ c78a-5dAg)
2018/01/27(土) 06:32:51.94ID:7WxnX7MJ0510デフォルトの名無しさん (ワッチョイ c78a-5dAg)
2018/01/27(土) 06:40:40.67ID:7WxnX7MJ0 要は言語としての設計思想というか考え方の問題であって、画期的の意味は最初という意味では無いということ
511デフォルトの名無しさん (ワッチョイ 3ad5-WBz1)
2018/01/27(土) 07:17:40.52ID:K5pLMFks0 ポインタはCの先祖のBにもあったぞ
512デフォルトの名無しさん (ドコグロ MM32-dVd5)
2018/01/27(土) 07:31:17.05ID:+IHcDO2KM >>509
意味不明
>>510
バカの上塗り w
二番煎じ画期的とは言わない
画期的
これまでとは時代をくぎるほど目覚ましいさま。
新しい時代をひらくさま。
エポックメーキング。
https://dictionary.goo.ne.jp/jn/42567/meaning/m0u/
意味不明
>>510
バカの上塗り w
二番煎じ画期的とは言わない
画期的
これまでとは時代をくぎるほど目覚ましいさま。
新しい時代をひらくさま。
エポックメーキング。
https://dictionary.goo.ne.jp/jn/42567/meaning/m0u/
513デフォルトの名無しさん (ワッチョイ c78a-5dAg)
2018/01/27(土) 07:37:40.78ID:7WxnX7MJ0 C言語はその生い立ちがUNIX のシステム記述のためのツールだからね
画期的ではあっても全く新規の考えというものを指摘するのは難しい
当時の構造化言語のアイデアをひとつの言語として完成させたことが最大の特徴
画期的ではあっても全く新規の考えというものを指摘するのは難しい
当時の構造化言語のアイデアをひとつの言語として完成させたことが最大の特徴
514デフォルトの名無しさん (ブーイモ MMaf-FYQJ)
2018/01/27(土) 07:41:46.63ID:iJdP+2J8M >>508
両方のコード表見比べて関係が判らないなら病院いけ
両方のコード表見比べて関係が判らないなら病院いけ
515デフォルトの名無しさん (ワッチョイ bab3-dVd5)
2018/01/27(土) 08:12:45.44ID:ZgMGVzLO0 Base64 の話に EBCDIC とか言う奴の方が行くべきだろ w
516デフォルトの名無しさん (ワッチョイ b375-lqEN)
2018/01/27(土) 11:43:45.46ID:rGBD/78P0 「EBCDIC(Base64)」(キリッ
517デフォルトの名無しさん (アウアウエー Saf2-qxBm)
2018/01/27(土) 12:01:49.11ID:j3glEAxXa >>499
3の倍数じゃないときは?
3の倍数じゃないときは?
518デフォルトの名無しさん (ワッチョイ b375-lqEN)
2018/01/27(土) 12:03:56.86ID:rGBD/78P0 >>517
ゼロで埋める
ゼロで埋める
519デフォルトの名無しさん (アウアウエー Saf2-qxBm)
2018/01/27(土) 12:07:04.24ID:j3glEAxXa =とか
==で埋めるんじゃないの?
0埋めで変換したら結果違わなくない?
==で埋めるんじゃないの?
0埋めで変換したら結果違わなくない?
520デフォルトの名無しさん (ワッチョイ b375-lqEN)
2018/01/27(土) 12:14:23.87ID:rGBD/78P0 どっちもだな
521デフォルトの名無しさん (ブーイモ MM97-xvHi)
2018/01/27(土) 13:13:51.86ID:kGDKdUgoM 2バイト用と1バイト用のテーブルなんてちょろいでしょ
522デフォルトの名無しさん (アウウィフ FF77-qxBm)
2018/01/27(土) 13:23:06.90ID:LkmGzMNLF pddingは規格に則らないとね
523デフォルトの名無しさん (ワッチョイ 3ad5-WBz1)
2018/01/27(土) 13:55:36.84ID:K5pLMFks0 プリン
524デフォルトの名無しさん (スプッッ Sd7a-pvFI)
2018/01/27(土) 14:28:09.57ID:THs1wO2td C言語学習中だけど企業等々でどんなことに使われてる?
525片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-iVxB)
2018/01/27(土) 14:34:22.79ID:TUhH5TnVd >>524
OS、組み込み、速度が要求されるゲーム、数値計算など。
OS、組み込み、速度が要求されるゲーム、数値計算など。
526デフォルトの名無しさん (ワッチョイ e39f-SpET)
2018/01/27(土) 15:57:17.68ID:ibqNKJrC0 >>514
おだいじに。
おだいじに。
527デフォルトの名無しさん (ワッチョイ c78a-5dAg)
2018/01/27(土) 16:24:23.51ID:7WxnX7MJ0528デフォルトの名無しさん (ワッチョイ e39f-SpET)
2018/01/27(土) 16:44:34.14ID:ibqNKJrC0 しかしなんというか、C++は発展させすぎて難しくなった感があるな。
C++ってWindowsネイティブアプリ以外で使われてるのあまり見ないような気がするんだけど。
Windows用で使われる理由は歴史的な理由で、もしこれがなければC++って廃れてないか?
C++ってWindowsネイティブアプリ以外で使われてるのあまり見ないような気がするんだけど。
Windows用で使われる理由は歴史的な理由で、もしこれがなければC++って廃れてないか?
529デフォルトの名無しさん (ワッチョイ 539f-fPTX)
2018/01/27(土) 16:55:56.69ID:InjcCDJK0 >>527
> 実用的にはC++への通過点といった感じで考えておいた方が無難
ダウト。
というか個人的には俺もそう思っていたが、どうも実際はそうじゃない。
https://www.tiobe.com/tiobe-index/
https://techacademy.jp/magazine/8735
あまり毛嫌いする必要もないはずなのだが、C++に乗り換えてない奴らも相当数いる。
理由は>>528の言うとおりで、C++は若干暴走気味だよ。
Linusの言う「無駄に抽象化しすぎて話を余計にややこしくする馬鹿が多すぎる」というのも当たってる。
とはいえクラス構文すら入れないCのかたくなな姿勢はどうなのよ?とも思うが。
> 実用的にはC++への通過点といった感じで考えておいた方が無難
ダウト。
というか個人的には俺もそう思っていたが、どうも実際はそうじゃない。
https://www.tiobe.com/tiobe-index/
https://techacademy.jp/magazine/8735
あまり毛嫌いする必要もないはずなのだが、C++に乗り換えてない奴らも相当数いる。
理由は>>528の言うとおりで、C++は若干暴走気味だよ。
Linusの言う「無駄に抽象化しすぎて話を余計にややこしくする馬鹿が多すぎる」というのも当たってる。
とはいえクラス構文すら入れないCのかたくなな姿勢はどうなのよ?とも思うが。
530デフォルトの名無しさん (ワッチョイ 9e23-Pdni)
2018/01/27(土) 17:14:52.43ID:BOWgYHll0 「なんとなくアセンブラコードが想像できるところまで」
というのがC言語で実装する機能の上限だと思う。
まあ実態とだいぶ乖離しているが、最適化を切ったとかの前提でひとつ
というのがC言語で実装する機能の上限だと思う。
まあ実態とだいぶ乖離しているが、最適化を切ったとかの前提でひとつ
531デフォルトの名無しさん (ワッチョイ c78a-Jirz)
2018/01/27(土) 17:15:48.70ID:7WxnX7MJ0 個人的にはクラス云々よりもC言語では関数のオーバーロードやデフォルト引数あたりが使えないのがもやもやする
というかあまり詳しく調べてないけど、最近のC言語の仕様改定で標準化とかされてなかったよね?
大抵はC++の処理系を利用しているから有耶無耶で利用している人も多いと思うけど
というかあまり詳しく調べてないけど、最近のC言語の仕様改定で標準化とかされてなかったよね?
大抵はC++の処理系を利用しているから有耶無耶で利用している人も多いと思うけど
532デフォルトの名無しさん (アウウィフ FF77-oJ1J)
2018/01/27(土) 17:38:54.08ID:WgYcU0PsF stdarg (... とか va_list) とマクロで出来んか
533デフォルトの名無しさん (アウウィフ FF77-oJ1J)
2018/01/27(土) 17:40:42.13ID:WgYcU0PsF ああrubyが頑張ってるか
534デフォルトの名無しさん (ワッチョイ 539f-fPTX)
2018/01/27(土) 18:39:07.65ID:InjcCDJK0 個人的には評価が確定した物は入れればいいと思ってる。
クラス(またはプロトタイプ)が使えない実用言語なんてほぼ無いわけでさ。
ただ、
> 「なんとなくアセンブラコードが想像できるところまで」 (>>530)
が標準化委員会の指針なら、今の姿勢も分からんでもないが。
>>531
> 関数のオーバーロードやデフォルト引数あたり
実はここは評価が確定してない。
というか、どっちかがあれば大体解決する。
VC++/CLIではデフォルト引数は禁止でオーバーロードのみ。
JavaScriptはオーバーロード無しでデフォルト引数は常にundefinedのみ。
いずれも大した問題はない。
C++は壮大な実験場と化しているから、
Cはありがたくその結果だけを受け取って緩やかに発展させればいいと思うのだが。
クラス(またはプロトタイプ)が使えない実用言語なんてほぼ無いわけでさ。
ただ、
> 「なんとなくアセンブラコードが想像できるところまで」 (>>530)
が標準化委員会の指針なら、今の姿勢も分からんでもないが。
>>531
> 関数のオーバーロードやデフォルト引数あたり
実はここは評価が確定してない。
というか、どっちかがあれば大体解決する。
VC++/CLIではデフォルト引数は禁止でオーバーロードのみ。
JavaScriptはオーバーロード無しでデフォルト引数は常にundefinedのみ。
いずれも大した問題はない。
C++は壮大な実験場と化しているから、
Cはありがたくその結果だけを受け取って緩やかに発展させればいいと思うのだが。
535デフォルトの名無しさん (スップ Sd7a-grVD)
2018/01/27(土) 18:45:25.09ID:n4Fyl/nRd 余計なもん要らんからクラスだけ追加したC+で頼む。
536デフォルトの名無しさん (ワッチョイ 3ae3-W10G)
2018/01/27(土) 19:07:57.64ID:StvMpZM10 c++の使いたいとこだけ使えばいいじゃん
537デフォルトの名無しさん (ワッチョイ c78a-Jirz)
2018/01/27(土) 19:10:00.20ID:7WxnX7MJ0 >>534
>実はここは評価が確定してない。
そんなに揉めるような機能か、これ?
特にオーバーロードなどは今すぐにでも導入されれば、似たような関数名であれこれいらんこと考えずに済むのでメリットしか考えられないんだが
デフォルト引数もあっても悪いものではないだろう
クラスの導入のように現行のC言語の規格を大きく変更(デメリットも含めて)することなく、簡単に言語の使い勝手を向上させるお手軽な改善だと思っていたんだが違うのか
>実はここは評価が確定してない。
そんなに揉めるような機能か、これ?
特にオーバーロードなどは今すぐにでも導入されれば、似たような関数名であれこれいらんこと考えずに済むのでメリットしか考えられないんだが
デフォルト引数もあっても悪いものではないだろう
クラスの導入のように現行のC言語の規格を大きく変更(デメリットも含めて)することなく、簡単に言語の使い勝手を向上させるお手軽な改善だと思っていたんだが違うのか
538デフォルトの名無しさん (ワッチョイ 539f-fPTX)
2018/01/27(土) 19:57:46.36ID:InjcCDJK0 >>537
> ●java
> デフォルト引数なし.オーバーロードはあり.
> ●python
> デフォルト引数はあるが,オーバーロードはなし.
> https://plaza.rakuten.co.jp/redbeeshrimp/diary/201112240001/
理由についてグダグダ言っている奴は他にもいたはずだが、例えば以下。
http://ufcpp.net/study/csharp/sp4_optional.html
> 余談: なんでいまさら?
以降を読んでみればいい。
型あり言語は型違いで無駄に同じ趣旨の関数が氾濫することになるから、
オーバーロード/テンプレート/ジェネリクスのどれかはあった方がソースは綺麗になる。
だから型無し言語(JavaScript/Python)はオーバーロード無しでデフォルト引数だけ、というのもまあ妥当な線だろう。
ならば、テンプレートを持っているC++は、
オーバーロード無しで、デフォルト引数+テンプレートだけで綺麗に書けるか、という話になる。
多分これもやれば出来るんだよ。
勿論そこに出ている「名前付き引数+テンプレート」でも綺麗に書ける。
どれを言語に取り込むべきか、ということに関して、C++は「全部入れちゃえ」というノリだからいいとして、
Cみたいにミニマムで美しく、というノリで「どれかにしろ」と言われたらちょっと迷うだろ。
Linusは多分オーバーロードすら要らん、という立場だぞ。
ちょっとググってもすぐには出てこなかったが、
「Cはこれについて馬鹿みたいに単純な方法(別の名前を付けること)で対応している。
実際、これはgrep出来るしメンテしやすい」
と言っていたはず。
まあ分からんでもないだろ。オーバーロードすら無しならgrepした関数に確実にそのまま当たる。
ソースを追うという意味ではこちらの方が当たってる。
オブジェクト指向の継承が良くない点の一つは、ぱっと見、どの関数が実行されるか分かりづらい点であってさ。
勿論、「分からなくていいし、分かる必要がない」というのがオブジェクト指向のノリだとしてもね。
> ●java
> デフォルト引数なし.オーバーロードはあり.
> ●python
> デフォルト引数はあるが,オーバーロードはなし.
> https://plaza.rakuten.co.jp/redbeeshrimp/diary/201112240001/
理由についてグダグダ言っている奴は他にもいたはずだが、例えば以下。
http://ufcpp.net/study/csharp/sp4_optional.html
> 余談: なんでいまさら?
以降を読んでみればいい。
型あり言語は型違いで無駄に同じ趣旨の関数が氾濫することになるから、
オーバーロード/テンプレート/ジェネリクスのどれかはあった方がソースは綺麗になる。
だから型無し言語(JavaScript/Python)はオーバーロード無しでデフォルト引数だけ、というのもまあ妥当な線だろう。
ならば、テンプレートを持っているC++は、
オーバーロード無しで、デフォルト引数+テンプレートだけで綺麗に書けるか、という話になる。
多分これもやれば出来るんだよ。
勿論そこに出ている「名前付き引数+テンプレート」でも綺麗に書ける。
どれを言語に取り込むべきか、ということに関して、C++は「全部入れちゃえ」というノリだからいいとして、
Cみたいにミニマムで美しく、というノリで「どれかにしろ」と言われたらちょっと迷うだろ。
Linusは多分オーバーロードすら要らん、という立場だぞ。
ちょっとググってもすぐには出てこなかったが、
「Cはこれについて馬鹿みたいに単純な方法(別の名前を付けること)で対応している。
実際、これはgrep出来るしメンテしやすい」
と言っていたはず。
まあ分からんでもないだろ。オーバーロードすら無しならgrepした関数に確実にそのまま当たる。
ソースを追うという意味ではこちらの方が当たってる。
オブジェクト指向の継承が良くない点の一つは、ぱっと見、どの関数が実行されるか分かりづらい点であってさ。
勿論、「分からなくていいし、分かる必要がない」というのがオブジェクト指向のノリだとしてもね。
539デフォルトの名無しさん
2018/01/27(土) 20:51:31.73 あまりにミニマムすぎるとみんなが好き勝手なマクロを作って「僕が考えたエレガントなコーディング」を始めるから少しは高級な記法を用意しといてくれや
540デフォルトの名無しさん (アウアウカー Sa33-bnsf)
2018/01/27(土) 20:56:30.77ID:0ISwxtuYa うーん。Cはアセンブラ代わりの単純な言語にしておいてそれ以上の事は別の言語でやればいいような気がするが。
丁度よい言語が見つからないなら作れば良い。自分で作れなくても仕様を公開して作ってくれる人を募集すればその内誰か作ってくれることだろう。
丁度よい言語が見つからないなら作れば良い。自分で作れなくても仕様を公開して作ってくれる人を募集すればその内誰か作ってくれることだろう。
>>537
関数のオーバーロードは、リンク時の対応にアセンブラ互換性がとれなくなるので、お手軽ではないと思う
extern "C" を追加するか?え、C に extern "C" って意味わかんない…
関数のオーバーロードは、リンク時の対応にアセンブラ互換性がとれなくなるので、お手軽ではないと思う
extern "C" を追加するか?え、C に extern "C" って意味わかんない…
542デフォルトの名無しさん (ワッチョイ 6e62-WBz1)
2018/01/27(土) 21:34:53.32ID:MtS5alc90 >>541
おまえさんの言っていることこそ意味わかんない
おまえさんの言っていることこそ意味わかんない
>>542
C++ 名前マングリングを指していたんだが…
C++ 名前マングリングを指していたんだが…
544デフォルトの名無しさん (ワッチョイ 6ec3-WBz1)
2018/01/27(土) 22:30:10.80ID:QdmRQWNl0 >>543
defファイルのことだとしたらしょーもねーな
defファイルのことだとしたらしょーもねーな
545デフォルトの名無しさん (ブーイモ MMda-EQ2j)
2018/01/27(土) 22:50:15.16ID:l2t/3O07M CはUNIX思想の根源みたいなもんだし、十徳ナイフみたいな機能はいらんでしょ
どうしてもって人はC++使えばいいだろ
そのためにできたようなもんだし
どうしてもって人はC++使えばいいだろ
そのためにできたようなもんだし
546デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/28(日) 14:26:11.42ID:Ixu0c+cx0 質問答えてくれたら嬉しいです
配列の中身をfprintfでエクセルに書き込む方法を教えてください
fprintf(fp,"%3d , %3dn",0,value)
のように一変数を書きこむ方法は分かるのですが配列のすべての要素を書き込みたいです
配列の中身をfprintfでエクセルに書き込む方法を教えてください
fprintf(fp,"%3d , %3dn",0,value)
のように一変数を書きこむ方法は分かるのですが配列のすべての要素を書き込みたいです
547デフォルトの名無しさん
2018/01/28(日) 14:36:25.54548デフォルトの名無しさん (ワッチョイ 43a8-JKdO)
2018/01/28(日) 14:53:05.75ID:2u+0fM2+0 エクセル言ってるんだから、エクセルクラスモジュール組み込んでライブラリ使うんだろ?
549デフォルトの名無しさん (アメ MMaf-Ah9j)
2018/01/28(日) 14:55:16.18ID:DwGHyqdDM でもfprintfでやりたいそうだし…
550デフォルトの名無しさん (スップ Sd7a-grVD)
2018/01/28(日) 15:01:30.88ID:uJNdMzSvd Csvだろうな。
です
for()で
fprintf(format,array[i])
を回せばええんちゃうん?
です
for()で
fprintf(format,array[i])
を回せばええんちゃうん?
551デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/28(日) 15:17:40.71ID:Ixu0c+cx0 >>547
csvファイルですね
csvファイルですね
552デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/28(日) 15:21:08.26ID:Ixu0c+cx0 なんの考えもなしに愚直に書くとこういうことがやりたいです
long value[100],k;
for(k=0;k<100;k++){
value[k]=500;
}
fprintf(fp,"%3d,%3d,%3d,%3d,%3d・・・,%3d\n",0,value[1],value[2],・・・value[100]);
long value[100],k;
for(k=0;k<100;k++){
value[k]=500;
}
fprintf(fp,"%3d,%3d,%3d,%3d,%3d・・・,%3d\n",0,value[1],value[2],・・・value[100]);
553デフォルトの名無しさん (ワッチョイ e39f-rgA5)
2018/01/28(日) 15:25:40.21ID:bdrFjlI30 for (k = 0; k < 100; k++) {
if (k) putchar(',');
fprintf(fp, "%3d", value[k]);
}
putchar('\n');
if (k) putchar(',');
fprintf(fp, "%3d", value[k]);
}
putchar('\n');
554デフォルトの名無しさん (ワッチョイ e39f-rgA5)
2018/01/28(日) 15:26:25.54ID:bdrFjlI30 あ、間違えた。putchar() じゃなくて putc() にして fp に対して出力に書き換えて。
555デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/28(日) 15:34:24.62ID:Ixu0c+cx0 >>553
ありがとうございます!
fprintf(fp, "%3d", 0);
for (k = 0; k < 100; k++) {
putc(',');
fprintf(fp, "%3d", value[k]);
}
putc('\n');
であってますか?
ありがとうございます!
fprintf(fp, "%3d", 0);
for (k = 0; k < 100; k++) {
putc(',');
fprintf(fp, "%3d", value[k]);
}
putc('\n');
であってますか?
556デフォルトの名無しさん (ワッチョイ bab3-dVd5)
2018/01/28(日) 15:48:50.89ID:C2Jb//yt0 >>555
それでいいなら
fprintf(fp, "%3d", 0);
for (k = 0; k < 100; k++) {
fprintf(fp, ",%3d", value[k]);
}
putc('\n', fp);
でいいかと
それでいいなら
fprintf(fp, "%3d", 0);
for (k = 0; k < 100; k++) {
fprintf(fp, ",%3d", value[k]);
}
putc('\n', fp);
でいいかと
557デフォルトの名無しさん
2018/01/28(日) 16:16:34.41 でも1バイトずつ出力なんて普通はしないで
行くらいはまとめて出力するやろ?
char buf[405]; /* 3桁数字×101個 + カンマ100個 + 改行 + 「¥0」でMAXサイズ決め打ち */
size_t pos;
/* 1行処理開始 */
pos = 0;
sprintf(&buf[pos], "%3d", 0); pos += 3;
for (k = 0; k < 100; k++) {
sprintf(&buf[pos], “,%3d", value[k]); pos += 4;
}
sprintf(&buf[pos], “¥n”); pos++; /* buf[pos++] = ‘¥n’; buf[pos++] = ‘¥0’; でもいいけど */
fwrite(&buf[0], 1, pos, fp);
/* 1行処理終了 */
行くらいはまとめて出力するやろ?
char buf[405]; /* 3桁数字×101個 + カンマ100個 + 改行 + 「¥0」でMAXサイズ決め打ち */
size_t pos;
/* 1行処理開始 */
pos = 0;
sprintf(&buf[pos], "%3d", 0); pos += 3;
for (k = 0; k < 100; k++) {
sprintf(&buf[pos], “,%3d", value[k]); pos += 4;
}
sprintf(&buf[pos], “¥n”); pos++; /* buf[pos++] = ‘¥n’; buf[pos++] = ‘¥0’; でもいいけど */
fwrite(&buf[0], 1, pos, fp);
/* 1行処理終了 */
558デフォルトの名無しさん (アウアウウー Sa77-rgA5)
2018/01/28(日) 20:06:56.21ID:4RSN9gyea559デフォルトの名無しさん
2018/01/28(日) 21:56:59.74 >>558
ロックのコストがかかるだろ
ロックのコストがかかるだろ
560愛知人
2018/01/29(月) 00:59:07.31ID:pcTu+bOr561愛知人
2018/01/29(月) 01:00:38.69ID:pcTu+bOr 画像の順番ミスりました。
562デフォルトの名無しさん (ワッチョイ e39f-SpET)
2018/01/29(月) 01:22:55.81ID:CxmMjiyr0 >>559
どのレベルでのロック?
どのレベルでのロック?
563愛知人
2018/01/29(月) 01:45:54.32ID:pcTu+bOr あ、原因わかりました
564デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/29(月) 13:52:22.33ID:FA24LoNZ0 >>558
ありがとうございます
ありがとうございます
565デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/29(月) 15:32:09.28ID:FA24LoNZ0566片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-iVxB)
2018/01/29(月) 15:40:58.91ID:MMFEPnwQd long array[] = {1, 2, 3, ' '};
memset(array, ' ', sizeof(array));
memset(array, ' ', sizeof(array));
567片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdda-iVxB)
2018/01/29(月) 15:55:33.60ID:MMFEPnwQd 配列に空白を入れるというのは、配列のどこかに、空白文字の文字コードを表す整数値を入れるという意味になる。
文字コードは、文字リテラルか整数リテラルで指定できる。
文字コードは、文字リテラルか整数リテラルで指定できる。
568デフォルトの名無しさん (ワッチョイ 9e9f-eGIS)
2018/01/29(月) 16:26:29.34ID:FA24LoNZ0 >>566
ご返事ありがとうございます
ご返事ありがとうございます
569デフォルトの名無しさん (ワッチョイ 9e23-Pdni)
2018/01/29(月) 20:07:03.14ID:F9uU0ACk0 配列の初期化で
int arr[10] = {};
と空に書くのは本来は行儀悪いことなんだな
int arr[10] = {0};
と最低1個は書かないとだめなのか
int arr[10] = {};
と空に書くのは本来は行儀悪いことなんだな
int arr[10] = {0};
と最低1個は書かないとだめなのか
570デフォルトの名無しさん (ワッチョイ 539f-fPTX)
2018/01/29(月) 20:19:04.64ID:b/VoqT930571デフォルトの名無しさん (ササクッテロル Spab-JKdO)
2018/01/29(月) 22:13:00.47ID:QfKx/Eh8p それ、空白じゃなくて、32だろ?
572デフォルトの名無しさん (アウアウカー Sa33-h2eI)
2018/01/29(月) 23:21:59.02ID:E7SWxZBPa cの初心者抜け出したいんだがgithubってのを使えばいいの?
573デフォルトの名無しさん (ワッチョイ 3ae3-W10G)
2018/01/30(火) 00:41:17.69ID:6zu/5bMS0 空白は32だろ
574デフォルトの名無しさん (ブーイモ MMaf-EQ2j)
2018/01/30(火) 00:57:52.94ID:sO+vG/P3M 俺の32年間の空白は埋まらない・・・
575愛知人
2018/01/30(火) 01:24:21.22ID:nQQmpnBb 空白=32=空白
576デフォルトの名無しさん (ワッチョイ ae81-veht)
2018/01/30(火) 01:33:07.55ID:vYlu6VEV0 空白が全て
577デフォルトの名無しさん (ワッチョイ e39f-SpET)
2018/01/30(火) 04:18:14.15ID:9ZRSIjLC0 今話題のEBCDICだと違うかも
■ このスレッドは過去ログ倉庫に格納されています
