C言語なら俺に聞け 151

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cf8f-fy95)
垢版 |
2019/04/02(火) 11:23:37.62ID:SQXqRaAc0
!extend:checked:vvvvv:1000:512
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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
768デフォルトの名無しさん (スフッ Sd8a-92O4)
垢版 |
2019/06/01(土) 22:01:32.09ID:2YdNSpFdd
>>767
すごい!!!
一気に雨っぽく見えるようになりましたw

乱数の件大変勉強になりました
もっと改良するとしたら、そのツイートのように不自然に見えるランダムさをなくすため振るいにかけるような工夫もしてみようと思います。

あと、もしよければGIFのやつのソースコードを貼ってもらえないでしょうか。よろしくお願いします
2019/06/01(土) 22:03:49.20ID:gZsm+Fjra
一様分布でなくても乱数とは言えるだろう
2019/06/01(土) 22:10:20.53ID:njUSTe0T0
>>768
一応貼るけど自分はC言語あまり得意でない上に適当にササっと作ったのだからあんまり参考にはしないでほしい
https://ideone.com/FG3nNS

system("cls")で画面更新してるけどチカチカさせずに滑らかに動かしたいならpdcursesとか使ったほうが良いと思う
あとLinuxだったらclsでは動かない
771デフォルトの名無しさん (スププ Sd8a-92O4)
垢版 |
2019/06/02(日) 08:12:25.21ID:Df5btDJSd
>>770
ありがとうございます!
初心者なので関数の使い方とか、あと自分がいかに無駄なコードを書いてたかとかがわかってとても参考になります

調べてみようと思います。ありがとうございました
2019/06/02(日) 13:28:56.70ID:gM/IYiKd0
constが外れるのにキャストせずに
char *p = "abc";
とできることを定めている条文どこだっけ?
2019/06/02(日) 14:35:27.10ID:hvNC8EHQa
初期化はちょっと違うんじゃねえかな
2019/06/03(月) 19:44:47.54ID:JpBlPJqE0
https://i.imgur.com/bxgSD4n.jpg
ちんぷんかんぷんなので教えて下さい
2019/06/03(月) 19:47:13.69ID:aVpNGdHY0
火の玉ストレートでワロタw
2019/06/03(月) 19:51:23.16ID:NMMhu3n80
>>774
糞みたいな問題だな
家木臭すぎ
2019/06/03(月) 19:56:34.99ID:JpBlPJqE0
解決しました
2019/06/03(月) 19:56:39.36ID:vGrK+0JX0
もうちょっときれいに写せないのか
779デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
垢版 |
2019/06/03(月) 21:20:26.29ID:CuEu7mica
影があって見えない。

ていうか、試験中に撮影して書き込みか?
思い切ったカンニングだな。
2019/06/03(月) 22:17:42.98ID:V6PZ+bAi0
(3)のとこ、この試験問題を作った教官がどういう教え方をしているのか聞かせてくれ
2019/06/03(月) 22:19:26.68ID:V6PZ+bAi0
正解は *(const char **)&s なんだが解答群にねえだろ
2019/06/04(火) 01:35:34.87ID:TgdlAqGq0
>>781 C++11以降でもなさそうだし、回答群にあるsでいいでしょ。
2019/06/04(火) 07:58:43.31ID:e9k+jtYr0
タイミングがよすぎるし>>772>>774は同一人物なのかな
784デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
垢版 |
2019/06/04(火) 10:12:17.26ID:prB+PlYza
ワッチョイからすると別のようだが
2019/06/04(火) 10:47:57.52ID:PKXus+yhx
簡単なテストがちんぷんかんぷんな人が規約を気にするとは思えない。
2019/06/04(火) 11:04:10.57ID:eBRK1s1cH
【速報】金券五百円分とすかいらーく優侍券をすぐもらえる   
https://pbs.twimg.com/media/D8I_kMUUYAEOmcl.jpg 
     
@ スマホでたいむばんくを入手  
A 会員登録を済ませる     
B マイページへ移動する   
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)     
   
今なら更に4日18時までの登録で2倍の600円の紹介金を入手    
クオカードとすかいらーく優待券を両方ゲットできます。  
    
数分で終えられるのでぜひお試し下さい。 
2019/06/04(火) 13:24:20.51ID:VVsdR08YH
>>786
QUOカード良いな
2019/06/04(火) 15:35:37.38ID:ZIqEmt8SM
>>786
複数スレに書き込みまくってID変えてレスも書き込みまくってる。
2019/06/04(火) 17:39:59.80ID:dFy1Csfg0
迷惑メール来るようになるっていう報告もあるからこれはスルーしたほうが良いと思う
2019/06/04(火) 17:46:57.34ID:VrCvogjT0
ありとあらゆるスレに貼られてるbotだから気にしなくていいぞw
2019/06/04(火) 17:48:42.06ID:rpsLXROr0
内容を変えてNG対策すり抜けをやろうとしているから、悪質だと考えた
2019/06/04(火) 18:10:41.59ID:QEritYjya
サービスの提供もとに不正行為として通報して、そいつの招待コードとやらを無効にさせられないかな。
2019/06/04(火) 18:49:11.42ID:rpsLXROr0
提供元も共犯だろう
2019/06/04(火) 20:15:40.66ID:dFy1Csfg0
これってどこの企業がやってるんだろう
普通に5chでは荒らしに近い迷惑行為だしなんとかできないかな
795デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
垢版 |
2019/06/04(火) 20:19:32.69ID:RBIldFVda
しかし500円だの600円だのしょぼいな。
PayPayみたいにずっと二割引でたまに全額当たるぐらいやらなきゃ宣伝にならんだろう。
2019/06/04(火) 20:43:44.67ID:rpsLXROr0
宣伝じゃなく、個人情報の収集だから
2019/06/05(水) 00:33:04.12ID:ZHHYr8Rz0
とてもいいアプリだからダウンロードして星つけてあげたらいいと思うよ
798デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
垢版 |
2019/06/05(水) 10:04:09.95ID:Fd++qFdya
激しいステマ
2019/06/07(金) 16:33:58.73ID:uIEpx76AH
真って0でしたっけ?1でしたっけ?0以外でしたっけ?1以外でしたっけ?
2019/06/07(金) 17:02:27.40ID:HLWbZT6Fa
>>799
bool型の1です。
2019/06/07(金) 17:27:02.62ID:RHh4qcVs0
0以外は真として扱われることが多いな。
0は明示的にfalseになると思う。
そのfalseの否定がtrue。
2019/06/07(金) 17:31:47.53ID:OLbvc6Nr0
論理演算結果を整数化したら 偽が0 真は1
整数を論理評価したら 偽が0 で真はそれ以外
2019/06/07(金) 17:33:03.09ID:sehGKr170
#define TRUE (1==1)
#define FALSE (!TRUE)

こんな事書いてたな
値がいくつなのかは気にしなかった
2019/06/07(金) 20:41:26.72ID:NHeyKhkN0
OR EAX,EAX
JZ FALSE
JNZ TRUE

こんなんか?
2019/06/07(金) 21:31:11.89ID:51aJPRpO0
TRUEと比較するなって先輩に言われたろ
2019/06/07(金) 21:37:49.54ID:e6zybBXY0
!!a == TRUE ならセーフになると思われるー
2019/06/07(金) 22:15:27.47ID:RQudHa2vd
論理演算では1が真なのに終了は1が異常終了なのはなぜですか?
1が正しく0が間違いというイメージなのですが
2019/06/07(金) 22:18:06.19ID:RHh4qcVs0
昔はintを返す習慣が多分にあったのでその習慣によるが、自分は異常終了は-1返してたな。
2019/06/07(金) 22:19:30.98ID:0dWbT8qma
>>807
いや、boolが戻り値なら真を成功にすることがむしろ多いと思う。
「エラーを返す」関数の需要が多いということではないか。
2019/06/07(金) 22:21:18.54ID:51aJPRpO0
エラーの種類を沢山返せるから
2019/06/07(金) 22:23:25.13ID:e6zybBXY0
正常というのは1つの状態しかないが
異常には色々な種類があるのでそれを区別するためにコードとして返したい

というのと

2値しかない真偽をどう値に配分するか

というのを同列に並べるとパニック。 C言語では別のものとして割り切る


なぜC言語では偽を0に割り当てたのか?という問いの答えを求めているのならば…
俺は知らない
2019/06/07(金) 22:23:54.80ID:Bjvb97BWx
>>807
正常は 0でいいけど、異常はいろいろな状態の別を報告できるようにでは
2019/06/07(金) 22:30:40.09ID:51aJPRpO0
ソフト会社に長年いて開発者からこの質問は初
OSインストールできませんなんてすごく高度なんだなって思った

コマンドのテストでコマンドの戻り値ってあるんですがなんですか?
2019/06/07(金) 22:36:39.33ID:0dWbT8qma
>>813
windowsの終了ステータスの確認の仕方とか忘れるしなあ。
言葉で出てくる結果しか見れないなんて普通だと思うわ。
2019/06/07(金) 22:42:11.06ID:xj9RlcCA0
0が偽なのにnoerrというイカれた慣習はどうして生まれたんだろうねぇ。
2019/06/07(金) 22:58:47.67ID:DaiiMVNnx
最初に誕生した OS、system/360 の JCLでも、正常は 0、警告が 4だったか 8だったかで、異常が 8だったか 16だったかだったな
z/OSでも同じだろうけど
知らんけど
2019/06/07(金) 23:33:27.02ID:sehGKr170
幸福な戻り値はどれも似たものだが、不幸な戻り値はいずれもそれぞれに不幸なものである。
2019/06/07(金) 23:33:41.86ID:nzmV+Edn0
if (error == 0)
で違和感ないじゃん
2019/06/08(土) 03:30:43.12ID:KzIynz9K0
0 informational
1 warning
2 error
3 severe
4 critical
2019/06/08(土) 11:21:36.15ID:5iouJYEP0
返り値0でエラーなしはUNIXのコマンド終了ステータス以来の慣習かな。
「正常終了」は状態が1種類しかないけど、失敗は「どう失敗したか」で
複数の状態があるから、正常で0、他の値はエラーコードってのは便利でしょ。

論理演算子の結果で true false の1と0は、論理学の数値表現を
プログラム言語にそのまま写しこんだからじゃないかと。

関数は一般にエラー状態を返り値で返す、と思っていれば
正常 == 返り値0 == false は違和感ないかと。
このルールから外れてるのは「失敗時にNULLを返す」タイプの関数で、
結構たくさん存在するのが困ったところだけど。
821デフォルトの名無しさん (ワッチョイ c379-uQfi)
垢版 |
2019/06/08(土) 11:32:28.80ID:7CBKOF2N0
Cでは同一のもとして動かせてしまうが
そもそもエラーコードとboolを同一視してる時点で論外なんだが
2019/06/08(土) 11:38:57.76ID:WG7jlf5q0
論理型を別に設けずに整数型で代用してしまおうというアイデアはBやCの言語仕様をコンパクトに
抑えるのに役立ったが、今となってはプリプロセッサマクロと同じくらいの悪しき遺産だなぁ。
2019/06/08(土) 14:58:06.03ID:KzIynz9K0
え、何か問題あるか?
2019/06/08(土) 15:35:48.39ID:X+3AMWAUM
C99以降であれば_Bool型を使えばいいのでは?
2019/06/08(土) 15:41:42.45ID:KzIynz9K0
ダメだこりゃ
2019/06/08(土) 15:41:57.08ID:bm2ApAetM
正常時1で異常時0を返す関数が混ざってたり
正常時ポインタで異常時ヌルポ返す関数があったり
それらの関数の返り値を全部 if でチェックしててカオスだったことがあります
2019/06/08(土) 15:56:39.68ID:KzIynz9K0
BOOLを返す関数が負数を返したかどうか調べにゃあかんやつとかな
2019/06/08(土) 16:38:04.87ID:WG7jlf5q0
ワインバーグの本にあったなあ。ドル紙幣はみんな同じ色、同じサイズで見分けがつきにくいけど、
それが常識だと思っている人は、一定の確率で間違えてしまうことも世界の法則で仕方のない
ことだと思っているとか。
2019/06/08(土) 17:13:44.27ID:auwh2hzj0
>>827
GetMessage()の悪口はいくら言ってもよいぞ
DWORDにしとけよ
2019/06/08(土) 18:39:07.71ID:jm0tDZO60
>>826
カオスっていうかこれ普通じゃない?
標準ライブラリのラッパー書くとき互換性保つために0成功にするでしょ
で他のオレオレライブラリはboolという
831デフォルトの名無しさん (ワッチョイ 9bd2-9700)
垢版 |
2019/06/08(土) 18:53:36.19ID:jXs/KV+s0
戻り地がboolのときはtrueが成功
intのときは0が成功なんだよ
2019/06/08(土) 19:39:01.75ID:ogfAGAzJ0
bool型ができたのはC99のときなので
2019/06/08(土) 19:42:23.71ID:jm0tDZO60
boolぐらいなにもインクルードしなくても使わせてくれぽよ
2019/06/08(土) 19:54:54.89ID:ogfAGAzJ0
「歴史的理由」という奴
835デフォルトの名無しさん (アウアウウー Sa1d-I703)
垢版 |
2019/06/08(土) 21:28:56.66ID:gCLo3iIIa
>>830
それのせいでPrelではシステムコールと同名の関数の返り値がいまいち統一取れてなかったりして、結局マニュアル見ながら個別に覚えざるを得なかったりする。
Perlはだいたいは1が成功でundefが失敗なんだけどね。(undefはCでのNULLみたいなもの。未定義を意味する。定義されてて値が0の時とは違うが、書き方によっては同じように扱えることもある)。
2019/06/08(土) 21:58:16.60ID:nbjDJ9kZa
今C++にあるoptionalだっけ?
あんな感じの有ってもいいな。かなりうざい感じになるから使わんか。
837デフォルトの名無しさん (ワッチョイ c38c-LJAA)
垢版 |
2019/06/09(日) 11:06:53.62ID:42ARNGRn0
インクルードをURLで引っ張ってこれたら面白いのに。
2019/06/09(日) 11:17:01.45ID:ZHA7gcDF0
一発でウイルス仕込まれそう
839デフォルトの名無しさん (ワッチョイ ebb6-fbqF)
垢版 |
2019/06/09(日) 11:59:40.15ID:W83DJxDE0
コスパ最強の副業「動画編集」で稼ぐ方法【生ハム登場】
https://www.youtube.com/watch?v=0ogHVUKoa8k
【最強の副業】動画編集で稼ぎ続ける人の条件【未来予想】
https://www.youtube.com/watch?v=e-IA4ePHzOs
【おすすめ副業・在宅ワーク】「動画編集」は初心者でも時給1,500円狙えます。
https://www.youtube.com/watch?v=8gYAqdSsI98&;t=168s
【与沢翼】動画編集素人でも本気でやれば個人で月収1000万も夢ではないですよ。
実は動画ってすぐプロと同じクオリティで作れちゃうし月収20万はすぐですよ
https://www.youtube.com/watch?v=ws55W45OLbE
センスのいい映像を短時間で編集する方法
https://www.youtube.com/watch?v=k0TT4Tbf_Ec
840デフォルトの名無しさん (ワッチョイ 5b02-EF/o)
垢版 |
2019/06/09(日) 14:38:56.62ID:zgQq0a060
>>837
/use/include ディレクトリをNFS マウントでもしとけ。
2019/06/11(火) 14:18:29.61ID:suKt4vmPd
すみません、質問があります。

環境はlinuxです。
ある共有ライブラリlibA.soをロードするプログラムbがあります。
このプログラムbをlibA.so抜きでgccでビルドすることはできるでしょうか?
もちろん実行時にはlibA.soは用意します。
842デフォルトの名無しさん (アウアウウー Sa1d-I703)
垢版 |
2019/06/11(火) 15:09:21.38ID:UmxJxqMia
>>841
リンクされる関数やグローバル変数が全て揃ってれば誤魔化し効くのではないかな。
2019/06/11(火) 16:20:37.89ID:X43Szptna
シンボルだけ定義したsoファイルを用意するのが普通ではないかと
2019/06/11(火) 18:35:03.43ID:z8NS6dzQ0
ダミーファイルを用意とか、かっけえな
845デフォルトの名無しさん (アウアウウー Sa1d-I703)
垢版 |
2019/06/11(火) 20:38:50.54ID:UmxJxqMia
そ、そうか?
2019/06/11(火) 21:26:50.36ID:suKt4vmPd
ビルド用のsoファイルを用意する、でいこうと思います。ありがとうございました!
2019/06/11(火) 22:01:48.05ID:vnr40KfNa
スタブってやつね。
dlopen使うと基本そうなると思う。
もともと自動的なシンボル解決してる場合は無視できたかも。
2019/06/12(水) 00:00:59.88ID:82Q6hISi0
>>847
お前は何を言ってるんだ
2019/06/12(水) 02:05:00.40ID:vWkgJgOw0
たぶん、DLL import, export みたいな定義ファイルさえあれば、コンパイルできるだろ?
850デフォルトの名無しさん (アウアウウー Sa1d-I703)
垢版 |
2019/06/12(水) 09:25:53.48ID:apqCeTcNa
DLL? Windowsだとそうなの?
2019/06/12(水) 10:40:58.95ID:QpFBULjO0
a) dll import キーワードつきのヘッダでコンパイル
 DLLを読み込みシンボル解決する .lib をリンク
 実行時には dll 読み込みをやってくれる (無いと文句言う)

b) 自前で DLL読み込んで GetProcAddress で関ポにセットして、
その関ポを呼び出すラップ関数を用意
  自前ロードしてるので、実行時に無い時別の処理の記述が可能になるん
2019/06/13(木) 13:22:19.29ID:tXoihok+d
大学でc言語を学び始めました
ポインタが意味不明でした
何がわからないのかわからない
2019/06/13(木) 13:54:13.91ID:wTJRUi3Ix
メモリとアドレスの概念が分かってないからじゃね?
2019/06/13(木) 19:07:04.64ID:mXxRrk+K0
現実世界にポインタと同じものを説明する概念がないから簡単な説明のしようがないんだよなぁ。住所録とか余計こんがらがるし。
素直に本を沢山読んでプログラムを組んで慣れるしか無い
2019/06/13(木) 19:27:38.29ID:HQZYLHkVa
本にページ数がない世界?
2019/06/13(木) 20:56:34.51ID:8abVSTNa0
アドレスは&つけてprintfした時に出てくるやつでしょ?
箱のラベルみたいなのだとかなんとか言われた気がする
メモリは単純に容量?

別関数で計算した値をmain関数に持ってくる時にポインタを使えばreturnがいらないだとかコピーじゃなくて直接数値を変えるから処理が楽だとか書いてあるけど結局普通に代入するのに比べて利点がよくわからない
2019/06/13(木) 21:10:17.33ID:mvKDv9Bs0
タワーマンション
2019/06/13(木) 21:10:41.15ID:HQZYLHkVa
何かの容量と言ったときの「何か」がメモリです。
利点は基本的にないです。
2019/06/13(木) 21:22:11.61ID:0e3y3dPM0
データが存在する場所
2019/06/13(木) 21:44:19.75ID:VQ1VjdQ1M
みんな思い思いのモデルで遊んでるから、パパは箱モデル出しちゃうぞ
2019/06/13(木) 21:45:29.38ID:vVgcrwZV0
うさみみハリケーンでメモリ覗いてチートしよう!
2019/06/13(木) 21:52:15.32ID:o6WQvi940
天使のような微笑みに
時は立ち止まる
2019/06/13(木) 22:05:37.40ID:mXxRrk+K0
なんか分からない部分のコード示してもらわないと
ここの有能な人たちもどう説明したらいいか分かんないから雑談始まったがw
2019/06/13(木) 22:14:30.76ID:wtG0GGqp0
1ビットが0か1かの二通りを表せる情報量。
1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。
1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
2019/06/13(木) 22:16:01.81ID:dMX2AWSU0
このスレにエスパーいるの?
2019/06/13(木) 22:22:12.70ID:wtG0GGqp0
アドレスに型情報を加えて、先頭アドレスを起点として配列のようにアクセス可能にしたものがポインタ。
しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。
2019/06/13(木) 22:29:06.28ID:o6WQvi940
ポインタ配列ってやると実体のない配列になるのかなw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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