X



C言語なら俺に聞け 146

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
垢版 |
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0
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言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0050デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/21(月) 12:45:27.07ID:BZDB6VKYa
C言語で?
0055デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/21(月) 20:39:05.84ID:M7fGJX8za
X Window System ってのもあるが・・・あまり使われないか。

まあしかしGUIの学習そのものなら話は別だが、何か実用的なプログラム作りたいのなら他の言語使った方が楽だと思うよ。
0056デフォルトの名無しさん (ワッチョイ 559f-XfH4)
垢版 |
2018/05/21(月) 22:54:53.65ID:3ykR0RBK0
>>49
他の人も言っているが、CでGUIはやめとけ。
今現在、また今後とも、GUIをCで積極的に作る理由はない。

GUI用の言語としてオススメなのはJavaScript/HTML/CSSだ。これはほぼ間違いない。
ただし、JavaScriptはコミュニティが腐っていて、
Web情報/紙媒体その他全般的に間違いが多すぎるから、
全くの初心者が正しく学ぶのは難しい。
それでもCでGUIを学ぶよりはマシだ。
今の君には分からないだろうが、CはGUI向けの言語ではない。(変数の生存期間等が)
0058デフォルトの名無しさん (ワッチョイ 559f-XfH4)
垢版 |
2018/05/22(火) 01:46:17.90ID:dh6iCve70
>>57
JavaScript/HTML/CSSは今現在最強だ。これは否定できないし、やれば分かる。
だから、他でGUIを既に知っており、自分で組めるのなら、これでやれってこと。
ここまでは間違いない。

ただし質問者はGUIが初めてだろ。だとするとWebや文献を漁ることになるが、
JavaScriptに関しては間違った情報が多すぎるから、
少なくとも「そんなわけないだろ」と自分で見抜けないとおかしな事になる。
これもほぼ見えた展開だ。だからJavaScripterは馬鹿が再生産されまくってる。

だからGUIもJavaScriptも知らない奴がGUIをJavaScriptで始めるのは問題があり、
判断は分かれるだろう。
それでも俺はGUIをCで始めるよりはマシだろう、という判断だということ。


JavaScript自体は簡単だから、C言語を十分に使えるのなら習熟は容易い。これは事実だ。
ただ、その過程で当然ググルわけだが、
これに間違いが多すぎて、ものすごく回り道をさせられる。
それでも正しい位置に帰ってこられればいいのだが、それは間違いを見抜けるからであって、
間違いを見抜けない奴に間違った教科書を渡したら終わるだろ。

とはいえ、CのGUIなんて(当時はさておき)今から考えたら完全に間違いでしかない。
当たり前だが、GUIなんて無い時代の言語にGUIをやらせようというのは無理があるんだよ。
そしてJavaScriptは最初からGUI用の言語だから、当然相性はいい。
で、どっちを取るか?となると、
今後CのGUIなんて要らんし、JavaScriptの方がまだマシだろ、という判断。
0062デフォルトの名無しさん (ワッチョイ 758a-ZY9B)
垢版 |
2018/05/22(火) 09:40:13.57ID:QrwgoN2z0
そもそも「GUI勉強」が何を指してるか次第だな
Windowsアプリを作れるようになればいいだけなのか
スマホ等も含めたクロスプラットフォームな環境を考慮する必要があるのか…
0064デフォルトの名無しさん (スプッッ Sdc2-NEzo)
垢版 |
2018/05/22(火) 09:57:26.79ID:FbkuHrezd
GUIっていっても実際の学習ではGとUに分かれてるんじゃないかなあ
手段としてはGraphicalなんだけど、本質のUser Interfaceは不変というかなんというか
C言語はGraphicalに向いている訳ではないけど、できなくもないのがコメントしにくい
0066デフォルトの名無しさん
垢版 |
2018/05/22(火) 11:58:54.60
組み込み機器のHMIはC言語で実装するのも珍しくないだろ
CソースはXMLから自動生成とかしてるかもだけどさ
0067デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/22(火) 12:19:16.89ID:s7oQSYg1a
テキスト画面に表示してるけどGUIみたいなやつはあるな。BIOS画面とか。
0068デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/22(火) 12:23:01.49ID:s7oQSYg1a
BIOS画面でもグラフィックスの画面で本当にGUIになってるの見たことあるな。多分中にLinuxとX入れちゃってるんだろうけど。
0072デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/22(火) 18:14:47.02ID:jJOm7blDa
>>71
なんで?
0074デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/22(火) 18:36:15.88ID:jJOm7blDa
>>73
その部分はBIOS画面としてしか動かんようにしてあるのでは?
必要最低限のプログラムしかないだろうし。
容量の小さいSDメモリみたいなのに入れてるだろうし。
組み込み機器みたいなものだな。
0077デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
垢版 |
2018/05/22(火) 20:22:51.24ID:jJOm7blDa
ところで元の話はなんだったっけ?
CでGUIならGTKがおすすめだっけ?
0079デフォルトの名無しさん (ワッチョイ 75eb-PcTF)
垢版 |
2018/05/22(火) 21:41:56.59ID:7iMo1JsI0
CでのGUIプログラミングは、オススメといっても人それぞれだし。
本人が興味のある手法、あるいは必要に迫らせた手法から順に
手を出してみればいいんじゃないかな
0082デフォルトの名無しさん (ワッチョイ 559f-XfH4)
垢版 |
2018/05/22(火) 23:09:30.41ID:dh6iCve70
結局ろくな突っ込みねえじゃねえかよ。

・CではGUIをやらないのがオススメ

だよ。
WindowsアプリにしたければC#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
VisualStudioがこの作りだろ。
組み込み機器でネットワークありなら鯖立ててブラウザから設定してもらうのがベスト。
ルーターとか全てこれだろ。
今時ネットワークもない機器でGUIなんてほぼねえよ。

そもそもお前らがGTKもQtも使ってねえだろ。
0083デフォルトの名無しさん (ワッチョイ 1a81-HRP5)
垢版 |
2018/05/22(火) 23:16:53.04ID:EWE1U2i10
>C#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
>VisualStudioがこの作りだろ。

そうだったのか、知らなかった。
VBで作っているのかと思ってた。
0085デフォルトの名無しさん (ワッチョイ 559f-XfH4)
垢版 |
2018/05/22(火) 23:47:04.75ID:dh6iCve70
>>83
ポイントはそこじゃねえ。VisualStudio自体が何で書かれているかは知らんよ。

ただ、今時、GUIまで含めてCで書く必然性はほぼないんだよ。
保守性を上げる為にも、GUIは設定ファイルを生成し、
各種プログラムを呼び出すだけの単純なコントローラに徹するべきなんだよ。
だからこそVSは各種プログラミング言語をカバーできているのであって。
0088デフォルトの名無しさん (ワッチョイ 059f-HRP5)
垢版 |
2018/05/22(火) 23:55:54.11ID:IBCwJBRn0
ぺろぺろ
0093デフォルトの名無しさん (ワッチョイ 559f-XfH4)
垢版 |
2018/05/23(水) 22:23:10.76ID:ZyQgvcA80
>>91
ならまずお前がオススメを出せよ、自称苦労人さんよ。


俺なら新規で自由に選択出来るのならまずElectronを検討する。
元々のコードが相当量有るのならグダグダ言わずにそれを使うしかない。

それ以前に、お前らJavaScript/HTML/CSSを知らんだろ?
実際はさらにそれ以前で、お前らGUIなんてほぼやってないだろ?
だからそんな低レベルな突っ込みしか出来ないわけでさ。

Cが十分出来るのなら、JavaScript/HTML/CSSの習熟は簡単だ。
CのGUIなんて悲惨なコードにしかならない。
次の機会があるのなら、騙されたと思って、
ElectronからCプログラム/DLLを呼び出すのも検討に加えてみろよ。
どんだけCのGUIがゴミだったか実感出来るから。

web系()が馬鹿ばかりというのも事実だが、逆に言えば、
馬鹿でも何とかなるようにシステムが組まれてるからこそ成立してるのであって、
この意味では学ぶことも多いぞ。
0097デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/24(木) 02:25:19.76ID:yJx+fTIp0
>>96
動作環境同梱だからな。
でも実際、それで問題ないからVSCodeやatomに使われてる。

しかしこのスレも本当にゴミになったな。
揚げ足取りしか出来ない馬鹿しか居ない。
文句を言う前に、まずオススメのGUIを出してみろよ。

事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
そもそもGUIをCで書いてる奴が居ないんだから。

Electronにはそれ以外にも色々問題はある。
だからElectronが許されるかどうかは確かに問題だが、
それでもいい環境なら今現在GUIに最適なのは間違いない。
0098デフォルトの名無しさん (ワッチョイ 198a-CZLf)
垢版 |
2018/05/24(木) 03:15:02.23ID:YYT9dX/p0
ある程度大きなツールなら問題ないだろうけど、
ちょっとしたアプリだと驚きのサイズかな

個人的にお手軽なのはC#(WinForms)で
気合入れるならC++(Win32API)だけど
オススメと言われると悩ましいな
Cはその手のには使ってない
0101デフォルトの名無しさん (ドコグロ MM3d-Lo1h)
垢版 |
2018/05/24(木) 06:45:39.64ID:MTt26arvM
>>97
> 文句を言う前に、まずオススメのGUIを出してみろよ。
> 事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
お前が無視してるだけだろ w

>>>69
>> Cなら普通にgtkだろう

> そもそもGUIをCで書いてる奴が居ないんだから。
なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
0103デフォルトの名無しさん (アウアウカー Sa95-NVy/)
垢版 |
2018/05/24(木) 09:17:20.14ID:vh6bvB4+a
Xlibも仲間に入れてあげてください
0104デフォルトの名無しさん (アウアウウー Sadd-DqgS)
垢版 |
2018/05/24(木) 10:47:49.63ID:9AnTU2Mna
今北。なんだこの流れ。
元をたどれば>>49がGUI未経験なのでどれを勉強すればいいか聞いてたのが始まりだよな。

おそらく49はプログラミング初心者だろうから、別にC言語を使わなきゃならないという縛りもないはずだ。
C言語スレではあるものの、サクッとGUIアプリが作れる言語を教えるというのは理にかなっていると思う。

初学者がC言語しか知らないというのも珍しいことではない。
実際、大学や高専ではいまだ最初にC言語を教える学科が多い。
だが、それはC言語を学べば他の言語を学ぶ時の学習コストが大幅に下がるというのも理由の1つとしてあると俺は思う。

ということで、このスレではおすすめのGUIフレームワークの話題が繰り広げられているみたいなのだが、
これはおそらく収拾がつかないぞ。
フレームワークの種類だって数多くあるし、言語もケースバイケースだからなぁ。

結局>>49がどういうプラットフォームでGUIアプリを作ってみたいかによるんだよ。
普段使ってるOSがWindowsかLinuxかだけでも大分違うし、
動くならWindowsだけでいいのか、できるだけクロスプラットフォームにしたいのかでも違うし。
なので、49が黙っている以上、誰もが納得する回答なんて出るわけないんだよなぁ。
0107デフォルトの名無しさん (アウアウウー Sadd-DqgS)
垢版 |
2018/05/24(木) 15:01:48.55ID:9AnTU2Mna
>>106
AIZU ONLINE JUDGE
http://judge.u-aizu.ac.jp/onlinejudge/

会員登録が必要だけど、たくさんのプログラミングの問題が載っている。
言語はC言語だけでなく様々な言語が選択可能で、
入力されたテキスト(標準入力)に対し正しい回答(標準出力)を出せればOK。
アルゴリズム力や数学力を鍛えるのには役立つだろう。
序盤は入門者・初心者向けだが、上級者向けの問題もある(というか大半が上級者向け)。
0112デフォルトの名無しさん (アウアウカー Sa95-NVy/)
垢版 |
2018/05/24(木) 20:29:25.26ID:j4DAPFSka
>>106
お手軽かどうかはわからないが一応この板にはプログラミングのお題スレがある。
0113デフォルトの名無しさん (アウアウエー Sae3-TUnL)
垢版 |
2018/05/24(木) 20:51:23.65ID:xmDpqFfVa
配列名に動詞使うのは違和感ありますか?
week_of_day = get_week_of_day[(year + year / 4 - year / 100 +
year / 400 + (13 * month + 8) / 5 + day) % 7];
0119デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/24(木) 22:01:19.97ID:yJx+fTIp0
>>101
> なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
自己紹介乙。
お前は他言語が何も出来ないからその程度の視野なんだよ。

お前ら自身が今現在もGTKを使っててオススメだと思っているのならそれでいいが、
実際はお前らもGTKを使っておらず、それ以前に使ったこともない知ったかぶりだろ。
そういうミスリードはマジで止めろ。

Electronが生まれた理由はあるんだよ。
そして同様に、MSがMFC->Form->WPFと進化してきた理由もある。
この辺を理解出来ないのなら自分は馬鹿だと自覚して自重しろ。迷惑でしかない。
0121デフォルトの名無しさん (ドコグロ MM63-Lo1h)
垢版 |
2018/05/24(木) 22:14:53.56ID:vWpWkuPHM
>>119
普通にGTKも使ってるぞ
最近はC言語での開発は減ったけど保守とかあるしな
GUIって聞いてPCとかスマホのアプリ程度しか想像できないような知ったかには用はないからおとなしくROMっとけ
0126デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
垢版 |
2018/05/24(木) 22:45:14.24ID:6yspu/tD0
>>123
> 新規案件がない=今現在はそれを積極的に使う理由がない、だよ。
で、何が言いたいんだ?
消極的だろうがC言語でGUI組む話なんだから、関係ない話したいならよそへ行けよ
0129デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/24(木) 22:54:40.75ID:yJx+fTIp0
とりあえず初心者向けにガイドラインを出すと、

・とにかく新しい物を使え

に尽きる。Cは歴史も長いから当然色々あるのだが、
GUIも色々試行錯誤していて、結果的に昔のは基本的にゴミだ。
当たり前だが新しい奴はいろいろ改善されているわけでね。

そして初心者なら自分で判断出来る能力はないのだから、他人の判断能力にすがれ。
これも当たり前だがみんなそれぞれの状況で「最適解だ」と考えた物を使ってる。
結果的に、割と妥当な物が採用される確率が高くなる。
んで、今時みんなWebでやってるだろ。理由は簡単、一番簡単だからだよ。

Web系()が馬鹿ばっかりなのは事実だが、
逆に言えば、本当に簡単にGUIが実現出来るからこそ、それで成り立ってる。
これは本当にJavaScript/HTML/CSSをやれば分かる。
これまでのGUIは何だったんだ?と思えるくらい間抜けなほど簡単に色々出来るから。
0135デフォルトの名無しさん (アウアウカー Sa95-eopN)
垢版 |
2018/05/24(木) 23:59:23.49ID:4h4bAGNya
>>134
>>49の前提条件が分からないとオススメしようがないな
プログラミング未経験ならそもそもGUIの勉強の前にやることあるだろうと思うし
C言語を勉強してその延長上でかつWindowsならWin32APIでもいいだろうし
0136デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/25(金) 00:07:25.24ID:DRvoryYO0
>>132
とりあえずは同意だが、俺はCではGUIは学べないと思ってるんだよ。


Linusは「Cでもオブジェクト指向は出来る」と言うだろ。確かにこれも事実だが、
これは「既にオブジェクト指向を完全に理解しているから、文法サポート無しでも出来る」のであって、
「何も分かってない奴がいきなりCで出来る」ようにはならないと思うんだよ。

GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだと俺は思っているから、俺はそれを勧めてる。
それで正しいGUIが出来るようになれば、あとは昔のCのゴミみたいなGUIフレームワークでも何とかなるだろうさ。
しかしGUIのイロハも分かっていない奴に昔の=今から考えたら間違ったフレームワークでは、
間違った方向にしか進めないと思ってる。

これは逆説的だがJavaScripterがOOPを全く理解出来ていないことからも言える。
JavaScriptは全般的にOOPではないので、抽象クラスでコードを一本化ってのが割と出来ない。
PHPはもっと悲惨で、言語内に色々矛盾があるから普通にコードを書いていても躓く。
あれでは上達しないのも分かる。当然OOP(継承)の利点も理解出来ないし。

OOPと同様にGUIでド定番なのはMVCだが、逆にこれをお前らは理解してないだろ。
これも当然で、MVCなんて昔はなかったから、当然昔のGUIフレームワークは『文法的には』サポートしてない。
勿論それでもやれば出来るのだが、それは知っているからであって、知らないようでは組みようがない。

だからとりあえず今最新の物を使っておけ、というオススメになる。
少なくとも、今現在正しいとされている構成にしやすい物になってるから。
0140デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/25(金) 00:27:41.04ID:DRvoryYO0
>>138
あとついでだから聞いといてやる。
俺がCXについて「逃げた」として、お前はどう突っ込むつもりなんだ?

その話はどうあがいても本筋には繋がらないと思うが、やってみろ。
0144デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/25(金) 00:40:30.62ID:DRvoryYO0
>>141
お前みたいなクソガキではないからな。

お前がWin32APIを『今』使っていてそれを勧めるのなら、それもありだろう。しかし、そうではない。
お前は今Formsを使っている。なら、それを勧めるのならそれもありだが、それもしない。
おかしいと思わないか?

Formsを使っているうちはFormsの問題に気づけない。
丁度、Cを使っている奴がCで何も問題を感じないのと同じだ。そんなもんだと思っている。
だから古いフレームワークをずっと使い続けている奴が古いのを勧めるのはあり得るし、不思議ではない。
しかし、お前はそうではない。

そりゃ単なる荒らし行為だよ。或いは構ってちゃんか?
0146デフォルトの名無しさん (アウアウカー Sa95-eopN)
垢版 |
2018/05/25(金) 01:13:49.55ID:KhvSHsgHa
ログ読み返して見たら最強とかオススメとか最新とかは言ってるけど
使ってるとは書いてないのな、ちょっと尊敬するわ

>>144
現行で使えるしな、条件次第では別に勧められても不思議じゃないだろ
勉強なら別に今使ってなきゃオススメ出来ないってこともないと思うし
GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ
0147デフォルトの名無しさん (ワッチョイ d99f-CK0H)
垢版 |
2018/05/25(金) 01:19:35.26ID:DRvoryYO0
>>146
仮に俺が「使っている」と書いていたとして、どう突っ込むつもりだったんだ?
聞いておいてやる。

> GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ
ねえよ。
■ このスレッドは過去ログ倉庫に格納されています

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