- 1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net]
- C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 144 https://mevius.5ch.net/test/read.cgi/tech/1514025223/ 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 820 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 15:06:53.28 ID:bMqQKRLP0.net]
- >>787
%2c の部分は右詰めで幅2文字の指定になるが c なので常に1文字の指定になり 引数の int 型数値は unsigned char に変換されて出力される。つまり %2c の部分 だけでスペース1文字と引数で与えた1文字が出力される。(もちろん端末によっては 引数の値によって1文字の扱いにならないかも知れないが、その辺は説明が長く なるので省略)。 後はその前後にスペースを付け加えて出すかだけの問題。そのプログラムには 改行がないので全て繋がって出力される。(1回も改行を出力しないままプログラムが 終わるので実行環境によっては出力の後に続けてシェルのプロンプトが出るかも 知れない)。
- 821 名前:デフォルトの名無しさん [2018/04/07(土) 15:19:36.81 ID:vVe4gpjb0.net]
- 判りにくい日本語だな
判るものもかえって判らなくなるくらいひどい
- 822 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 16:08:23.10 ID:bMqQKRLP0.net]
- じゃあ分かり易く書き換えてくれ。
- 823 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 19:07:44.77 ID:jn0jIz6fd.net]
- まず、%2cは必ず「ブランク*」(*は任意の1文字)になる。
その上で整形用のブランクはprintfを分けて、 ブランク以外の文字とかで試してみろ。
- 824 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 21:25:17.61 ID:I35+hkP6a.net]
- >>745
アセンブラからきたわいCの楽さに歓喜
- 825 名前:デフォルトの名無しさん [2018/04/07(土) 21:49:40.43 .net]
- Visual BasicとかPerlとかから入った自分としては、
Cのほうが簡単に書ける場面もあれば VBSやVBAがいい場面もあればPerlがいい場面もあって 要はどの言語でも楽しく書ければそれでええやん
- 826 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 06:56:45.64 ID:oETTfDn00.net]
- ワイはbash + sed + cの三点セットや
- 827 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 19:49:06.28 ID:bmGQy2qQ
]
- [ここ壊れてます]
- 828 名前:0.net mailto: >>787
こんなの試してみたら分かったりしない?(\nは改行) printf("%c\n",'a'); printf("%1c\n",'a'); printf("%2c\n",'a'); printf("%3c\n",'a'); printf("%4c\n",'a'); printf("%5c\n",'a'); [] - [ここ壊れてます]
- 829 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 20:21:36.79 ID:qxDYyi6TH.net]
- 一切出てこない質問者の相手はいらんだろ
- 830 名前:デフォルトの名無しさん [2018/04/15(日) 15:16:14.29 ID:iG9vZW44M.net]
- 上の写真を見る限りjが増えたタイミングでprintfで改行コード入れてるっぽいけどそれならiのforが終わったタイミングで改行コード入れれば動くんじゃないですか?
なぜiが8までしか回さないのかわからないですが…
- 831 名前:デフォルトの名無しさん [2018/04/15(日) 15:38:09.01 ID:MyboI2lC0.net]
- しょーもない質問ですいません
vs2017で勉強してるど素人なんですが コードをミスして修正しようとすると文字が上書きされて 文字を挿入できないん時があるんですが、 なぜでしょうか?
- 832 名前:デフォルトの名無しさん [2018/04/15(日) 15:41:00.10 .net]
- >>802
https://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%AD%E3%83%BC
- 833 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:42:04.62 ID:CIuag2/D0.net]
- >>802
こっちで聞けよ Visual Studio 2017 Part5 mevius.5ch.net/test/read.cgi/tech/1520336504/
- 834 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:50:05.64 ID:ASLFteC6a.net]
- 上書きモードに誤爆したろ
- 835 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:54:21.86 ID:0gUBaoqj0.net]
- >>801
すまんが、どこに改行コードがあるのか、iが8までとは何の事か、 俺にはさっぱり読み取れねぇ お前とは見えてる世界が違うようだ
- 836 名前:デフォルトの名無しさん [2018/04/15(日) 16:17:29.71 .net]
- >>806
この程度読み取れないようじゃエスパーに向いてないよ > どこに改行コードがあるのか 予想回答「int c=‘ ‘;」って改行コードですよね? iが増えるたびに改行コードをprintしたいんですよね? > iが8までとは何の事か 予想回答:すみません、jの間違いです!
- 837 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:20:53.00 ID:LLURRdNlM.net]
- 改行は'¥n'
' 'はスペース
- 838 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:30:24.50 ID:bKUHpU4ed.net]
- >>806
大丈夫 おれもさっぱりわからん
- 839 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:02:55.57 ID:+NxoeMlk0.net]
- C言語でのステートマシンの設計や、上手なコーディングについて
体系的に学べるお勧めの書籍やサイト教えて下さい。
- 840 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:08:40.56 ID:+NxoeMlk0.net]
- 連投で申し訳ないけど
この辺の技術ってC++勉強した方が身に付くのかな?
- 841 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:10:47.07 ID:7zIgNBcs0.net]
- Cはライブラリが貧弱でほとんど自作しないといけない。
C++はその辺多少マシ。Boostとかあるし。
- 842 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:14:55.01 ID:7zIgNBcs0.net]
- 至極の名言教えてやるぜ。受け売りだけどな。
コードを効率的にしたり、最強の最適化だったりするそれが一番効くのは書かないことだ。 書くと何らかの負荷になる、コードもグチャグチャになる。 必要なことだけ書いて後は流れに任せるのが上達の道。
- 843 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:47:03.66 ID:aZbHy3F9d.net]
- C++って言うほどライブラリ充実してるか?
- 844 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:59:11.25 ID:+NxoeMlk0.net]
- うーん・・・人によって考え方が違うから正解なんてないし
2chのこのレスだけでは具体的な提示とか難しいよね 本当に必要な処理だけ書いてたら関数長くなって 見通し悪くなったりメンテし辛くなったりしない?
- 845 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:03:21.51 ID:IgQGrpHk0.net]
- >>810
ない。 >>811 関係ない。 君は本質的な「プログラミングの腕前」を上達させる為に、体系的に学べる物を探しているんだろ? ならそれは言語には全く関係ないことは分かるだろ。
- 846 名前:
そして、そんな物は今はない。なぜならプログラミングは今もまだ発展途上だから。 そもそも歴史が浅い。プログラミングには100年ほどの歴史しかないし、 プログラミング作法が学問として成立してからは50年ほどしか経ってない。 だから現在でも試行錯誤中なんだよ。 それは今更C#/C++/Javaがラムダを採用したことからも分かるだろ。 ラムダ自体はLispの昔からあった。 そしてこれらの言語はそれを知っていて不採用としたわけだが、 今更の方向転換=間違いを認めた、ということなんだよ。 まだそれくらいあやふやなものだって事。 勿論各自が「オレオレ流スーパーハッカー道」を上梓することは出来るのだけど、 実際そういう奴はいないようだ。 とはいえ、結果的に全ての言語が似たり寄ったりになってきているから、 これは成熟してきていることを意味する。 となると、今後は体系化されていくだろうし、そういうサイトや本が現れてきてもおかしくない。 今は>>813みたいな、一言集みたいなのしかないね。 https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/ [] - [ここ壊れてます]
- 847 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:18:14.92 ID:CIuag2/D0.net]
- >>814
C に比べたら... って話だろ
- 848 名前: mailto:sage [2018/04/15(日) 20:22:19.20 ID:vjxfJMST0.net]
- >>816
C++/C#/Java のラムダ式ってラムダ式じゃないと表現できない「何か」を表現する、というよりは、シンタックスシュガーとしてのラムダ式であることが不満です
- 849 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:26:36.28 ID:IgQGrpHk0.net]
- >>818
> ラムダ式じゃないと表現できない「何か」 とは何? 俺の理解では、これは存在しない。ラムダ無しでもチューリング完全だったろ。
- 850 名前: mailto:sage [2018/04/15(日) 20:31:05.37 ID:vjxfJMST0.net]
- >>819
Y コンビネーターとか、どうですか?
- 851 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:33:38.79 ID:8Bp5iafSd.net]
- >>818
ラムダ式じゃないと表現できない何かって何さ 定義した所の環境を使った第一級オブジェクトなプロシージャではだめなのか?
- 852 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:35:56.05 ID:IgQGrpHk0.net]
- >>820
すまんが俺はLisp使いではないから、それについては知らない。 ただ、それが本当に役に立つものなら、C++は数年後に採用するだろうね。
- 853 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:29:24.63 ID:7zIgNBcs0.net]
- >>815
一応言っておくと関数分割も必要なら必要なこととして処理されるべき。 ちなみに関数分割したほうが限度はあるけどキャッシュに乗って早くなる。
- 854 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:30:02.09 ID:sXJBpbWg0.net]
- この板でチューリング完全て言葉をみるとは思わなかった
- 855 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:59:29.91 ID:L6Qt+I9Ha.net]
- だいたい、どう抽象化するのがええのかって話でチューリング完全は関係ないからねえ。
前提としてはそうでないとあかんかも知れんけど。
- 856 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 00:40:26.76 ID:qQ0bjYjD0.net]
- 抽象化については「オブジェクト指向」で今のところ決着してるだろ。
これを否定する見解や言語は無いと思うが。
- 857 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 04:32:33.72 ID:94linQhp0.net]
- コンビネータでも実装するか?
- 858 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 23:38:04.25 ID:qQ0bjYjD0.net]
- >>820
>>827 お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか? 一応Wiki読んだが、 > 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。 > なお、一般にそういった言語では普通に再帰が使えるので、 > プログラミングにおいてはパズル的なテクニック以上の意味は無い。 > https://ja.wikipedia.org/wiki/%E4%B8%8D%E5%8B%95%E7%82%B9%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8
- 859 名前:D%E3%83%BC%E3%82%BF
なら、いらねえし、採用されることはないと思うが。 [] - [ここ壊れてます]
- 860 名前: mailto:sage [2018/04/17(火) 00:06:31.67 ID:gWiyCqxa0.net]
- >>828
その wikipedia の解説はちょっと本質からはずれている気がする 「明示的な識別子を含まないで再帰関数が記述できる」くらいか ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか? いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」 ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満 さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい
- 861 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 01:21:31.43 ID:RhwG6Rqia.net]
- javascriptだとアリって気がするよな。
なぜかは知らんが。まあlisp感あるからか。
- 862 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 08:33:39.92 ID:dXM64r3I0.net]
- javascriptにはなぜかオブジェクト指向が無いからな
コンビネータはC++には早晩実装されそうな気がする
- 863 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 09:37:19.33 ID:tZLDyJo/0.net]
- C++やJavaはクラスベースのオブジェクト指向言語
JavaScriptはプロトタイプベースのオブジェクト指向言語
- 864 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:42:23.84 ID:Yk52Q7IR0.net]
- >>829
今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、 焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。 実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。 逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。 例えばC#は意図的にインラインアセンブラを禁止している。 ヘルスバーグのインタビューがググッても出てこないのだが、心は、 「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。 これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。 これも実用言語では重要だよ。 アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、 「Pythonならみんな読めるし書けるから」だからね。 そのコードが10年以上使われることが分かっているのなら、 10年後に要員確保できない可能性がある言語を選択するのは間違いだし。 Cは、(時代的に無理ではあったが)何でもありの状態で、 文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。 「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。 C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、 一応、エンジニアが「C#ならメンテできます」と言えることを目指している。 (上手く行っているとは言い難い部分もあるが) 酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。 だから、話を戻すと、 実用言語においては実用性のある機能は取り入れるべきだが、 実用性がない機能は捨てられるべきなんだよ。 (大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題) 今回ラムダが矮小化されて取り込まれているということなら、 取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。 勿論今後覆る可能性もあるけどね。
- 865 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:55:44.13 ID:zXGef27d0.net]
- そういうのは自宅の壁に
- 866 名前: mailto:sage [2018/04/18(水) 00:05:44.11 ID:0XfxQo2f0.net]
- >>833
>取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。 受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、 ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか? という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい シンタックスシュガーを全否定するわけではない 「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない
- 867 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:03:16.68 ID:fAoQEHU80.net]
- >>835
> C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい 一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、 結果的には折れたんだろ。 昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。 比較すると、 1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。 2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、 局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、 結果的にその関数は他からも見える(使える)状態になってしまう。 匿名関数であれば、そこでしか使っていない事を文法的に保証できる。 3. ファンクタだとインスタンス変数は必ずコピーすることになる。 ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。 (ただしこれは実装による) だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、 1,2,3とも達成できるし、要らなかったかな、とも思う。 というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。 ラムダよりこっちの方が必要な気がするのだが。
- 868 名前:デフォルトの名無しさん [2018/04/18(水) 02:30:28.15 ID:vVNlUpo0d.net]
- Cとシェルスクリプトだけで生きていきたいんですが食べていけますか?
またそういった分野らOSSコミッター以外でありますでしょうか?
- 869 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:40:14.81 ID:whM0Cl8U0.net]
- あるとするなら組込系かな
回路図とアセンブラは出来るの?
- 870 名前:デフォルトの名無しさん [2018/04/18(水) 03:38:30.78 ID:5PSc4Ve9d.net]
- >>838
ありがとうございます
- 871 名前:デフォルトの名無しさん [2018/04/18(水) 06:50:02.81 .net]
- 今どき組み込み系もPythonできなきゃやっていけない時代よ
- 872 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 06:58:40.17 ID:JUjvxXNW0.net]
- 組み込みは圧倒的にC言語が多い
- 873 名前:デフォルトの名無しさん [2018/04/18(水) 07:26:37.24 .net]
- >>841
ツール類は一昔前ならPerl/Ruby/TTL(TeraTerm)/VBA、今はPythonが必須だよ
- 874 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 07:55:12.06 ID:JUjvxXNW0.net]
- ツール類ってなんだよ
組み込みの話をしてるの 機器内部のファームウェア
- 875 名前:デフォルトの名無しさん [2018/04/18(水) 08:03:28.70 .net]
- >>843
組み込み系開発者がCソースだけいじってればいいと思ってんのか
- 876 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:06:09.63 ID:JUjvxXNW0.net]
- 大部分の組み込みだとYES
他の言語など使わない
- 877 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:07:13.14 ID:JUjvxXNW0.net]
- C言語以外が必要なのは大規模な物だけ
- 878 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:15:48.27 ID:Acg84ZKa0.net]
- >>837
そういうことはプログラム板ではなくプログラマ板で聞いてこい
- 879 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:30:18.84 ID:8g/N/Bw3a.net]
- >>844
いい。
- 880 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:59:26.18 ID:whM0Cl8U0.net]
- 最悪、シーケンサ(PC)でラダー図とアセンブラ触ってりゃ
行けるでしょ。 MELSEC-iQ-RとかはC言語で書く(OSはVxWorks) ま所詮は他人の人生である
- 881 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 09:49:03.96 ID:bX/oR0u10.net]
- Cでさえオーバースペックでアセンブラという場合まである
- 882 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 09:57:01.68 ID:8LhMtFC1d.net]
- アセンブラでさえオーバースペックでバイナリエディタという場合まである
- 883 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 10:32:00.37 ID:MgMoBevw0.net]
- >>851
参考までにアセンブラがオーバースペックなマイコン(SoC)って何処の製品か教えて
- 884 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 10:40:41.42 ID:0P72JrSeM.net]
- あるとすればIMSAIとかだろうけど、流石にネタだろ
- 885 名前:デフォルトの名無しさん [2018/04/18(水) 11:16:51.20 ID:gg2GabAwa.net]
- プログラムを動かすボードが貧弱でも開発は豪華なPCでやるんだから最低でもアセンブラ使えるようにはするだろう。
作ったばかりのCPUで他のCPUとの互換性が全くなくアセンブラもまだない、なんていう特殊な状況でない限りは。
- 886 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 11:45:29.90 ID:8g/N/Bw3a.net]
- マウンティング頑張れ
- 887 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 12:36:20.65 ID:8LhMtFC1d.net]
- ごめんなさい
ネタです
- 888 名前:デフォルトの名無しさん [2018/04/18(水) 12:57:38.66 ID:gg2GabAwa.net]
- mount /dev/sda
- 889 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 23:26:56.70 ID:1I0zrtwW0.net]
- 組込み屋だけど会社によって状況違うんだなとしみじみ
- 890 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 23:58:14.05 ID:BI6oaZDa0.net]
- この頃は組み込みって言っても Linux が動いちゃうような小さいボードあるしな。
SDメモリに平気で何Gもデータ入れちゃったりもできるし。なんとういか、時代は変わったよな。 昔は2KBと4KBのROMに詰め込むためにビット単位で削っていたもんな。
- 891 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 00:35:24.22 ID:q2wFspbLM.net]
- 組み込みって昔から小っちゃいのから馬鹿デッカいものまであるから一括りにするのが間違い
- 892 名前:850 mailto:sage [2018/04/19(木) 05:33:01.08 ID:IwtdBTTY0.net]
- なんかネタレスで返されてるな
とあるLEDアレイの案件では並列に重きを置き CPUあたりの処理能力は思いっきり低い なんてのがあったんだが
- 893 名前:デフォルトの名無しさん [2018/04/19(木) 12:39:01.79 ID:oHD1faOFa.net]
- あまりに面倒ならハードウェアで回路追加して解決
- 894 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 22:41:42.50 ID:Uac+F3+Td.net]
- あんまりそれすると、またハード屋に小言言われるぞ。
- 895 名前:デフォルトの名無しさん [2018/04/19(木) 23:07:31.74 ID:p3OUOmjs0.net]
- int a[] = {0,1,2,3};
char b =0; scanf("%d",&b); printf("%d",a[b]); 知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど 色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?
- 896 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:17:20.36 ID:/9NYPZwG0.net]
- >>864
自分で試してみた?
- 897 名前:デフォルトの名無しさん [2018/04/19(木) 23:21:55.11 ID:p3OUOmjs0.net]
- >>865
100入れてみたら3が返ってきたw
- 898 名前: mailto:sage [2018/04/19(木) 23:22:54.38 ID:b+0fRBYw0.net]
- >>864
>色んな数字入れても0になるとか ならない https://ideone.com/Itq7px
- 899 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:23:39.27 ID:XF7JHHHf0.net]
- エンディアンによるような気もするがー
%d は int の大きさを持った器のポインタを要求してるのに char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作
- 900 名前:デフォルトの名無しさん [2018/04/19(木) 23:29:53.26 ID:p3OUOmjs0.net]
- これがエラーにならず動いてしまうという悪魔のCの動作か
- 901 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:30:32.30 ID:/9NYPZwG0.net]
- char b[4] = {0};
scanf("%d",&b[0]); printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]); これをVCとGCCで試してみた 結果は配列先頭要素に代入され、残りは0のままだった
- 902 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:31:48.87 ID:x2EYL8xQ0.net]
- >>867
bの型がcharなのが
- 903 名前:フなんだからそこは間違えるなよ []
- [ここ壊れてます]
- 904 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:18.23 ID:XF7JHHHf0.net]
- >>870
入力で負の値を渡すと…
- 905 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:42.76 ID:lwH23MPfa.net]
- intだからな
- 906 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:36:41.07 ID:/9NYPZwG0.net]
- なるほど、入力値が小さいときは、
後ろの配列が変わってないかのように見えるだけって事か
- 907 名前: mailto:sage [2018/04/19(木) 23:38:11.10 ID:b+0fRBYw0.net]
- >>868
char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?
- 908 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:38:53.72 ID:XF7JHHHf0.net]
- >>874
そそ 0でフィルしてるから問題ないようにみえるけど、 0 以外でフィルしてやると副作用おこしてるのがわかるよ
- 909 名前: mailto:sage [2018/04/19(木) 23:39:18.81 ID:b+0fRBYw0.net]
- >>871
あ!
- 910 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:40:18.78 ID:XF7JHHHf0.net]
- >>875
printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?
- 911 名前: mailto:sage [2018/04/19(木) 23:46:08.02 ID:b+0fRBYw0.net]
- >>878
やっと気が付いた… >>877
- 912 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 00:50:00.05 ID:G/kLZxdya.net]
- 警告って出ないもん?
- 913 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 01:57:12.33 ID:wjKqEKEv0.net]
- 関数の引数はスタックサイズに丸められるよ
- 914 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 02:04:42.67 ID:G/kLZxdya.net]
- ポインタだしなあ
- 915 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:13:59.91 ID:EDYH6GYd0.net]
- >>880
GCC だと -Wall を指定すれば警告が出るね。 書式 %d に対して *char の引数 [-Wformat] 配列の添字が char 型 [-Wchar-subscripts]
- 916 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:51:33.68 ID:9tWrHk9l0.net]
- >>881
この1行にアホが詰まってる 会話の内容も実際の動作も用語もわかってないっていう
- 917 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 07:58:37.73 ID:eEDtLY6e0.net]
- アホな点をいくつ見つけられるかで
各自のアホ度を測定できるな
- 918 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:31:45.52 ID:OLFb+zqBd.net]
- それがデバッグと言われる行為だろ?
- 919 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 10:21:13.71 ID:xd9k5+f1M.net]
- 脳がwormhole だらけなんでしょ
- 920 名前:デフォルトの名無しさん [2018/04/20(金) 14:21:22.42 ID:33OB1hDw0.net]
- char *line;
scanf("%s", &line);//dogが入る if(line=="dog") { printf("dogですよ"); } これってなんでdogと合わないん?
|

|