C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
>>26
Cでここまであからさまに間違えているのも今時珍しいが、
そもそもその程度の個人サイトなんて見る価値無いからやめとけ。
その次の検索結果の以下とか、図もあるし、その件についても解説されてるし、そっち読め。
http://www.ibe.kagoshima-u.ac.jp/edu/gengo0/p12.html
見分け方を教えておくと、
10-20行程度のソースをさも一生懸命書いた=初心者レベルと分かるだろ。
Cは歴史も長いからガチの解説サイトも大量にある。
逆に言えば、ガチで解説してないところは全部ゴミ扱いでいい。
あと、メンテされてるかも見ろ。具体的には日付な。 計算機の安全と、プログラマーの業務を守るための意義のある戦いであった。 >>26です。
皆さんありがとうございます。
ガチの説明が書いてあるサイトを検索してみます。教えていただいたサイトも見てみます。 >>36
33のサイトは鹿児島大学だけど、おそらく大学がいいと思うぜ。理由は以下。
・入門者のレベルに合ってる
・どこの大学にも入門講座はある
・毎年使われる=メンテされてる
まあがんばれ。 大学っつうても、研究室のお遊びブログ的なのはだめだぞ 大学だってちゃんと社会貢献してる。
でも最近は高過ぎるし、多すぎる。 我が人生、フィクションの世界で生活しないといけないんだ。 ttps://stdput.com/dat/program/allocppp.zip >>23
一応元のサイトでやろうとしてたことだけ解説しておくと、
(int*)malloc(2 * 3 * 4 * sizeof(int));
が実際に整数値が入るメモリ領域で、このメモリ領域に
d[0][1][1] = num;
でアクセスできるようなアドレスの配列を別に malloc してる。
でも普通はこう書くと思うわ。(面倒だったので3x3x3で書いた)
int dim1[3][3][3] = {
{{0x0000, 0x0001, 0x0002}, {0x0010, 0x0011, 0x0012}, {0x0020, 0x0021, 0x0022}},
{{0x0100, 0x0101, 0x0102}, {0x0110, 0x0111, 0x0112}, {0x0120, 0x0121, 0x0122}},
{{0x0200, 0x0201, 0x0202}, {0x0210, 0x0211, 0x0212}, {0x0220, 0x0221, 0x0222}},};
int *dim2 = calloc(1, sizeof(int) * 3 * 3 * 3);
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
dim2[k + j*3 + i*3*3] = i * 256 + j * 16 + k;
(gdb) p dim2
$1 = (int *) 0x602010
(gdb) x/28x 0x602010
0x602010: 0x00000000 0x00000001 0x00000002 0x00000010
0x602020: 0x00000011 0x00000012 0x00000020 0x00000021
0x602030: 0x00000022 0x00000100 0x00000101 0x00000102
0x602040: 0x00000110 0x00000111 0x00000112 0x00000120
0x602050: 0x00000121 0x00000122 0x00000200 0x00000201
0x602060: 0x00000202 0x00000210 0x00000211 0x00000212
0x602070: 0x00000220 0x00000221 0x00000222 0x00000000 int (*dim2)[3][3];
これができないばかりに
アホらしい努力を・・・ そろそろ、GUI勉強したいんだけど
どれ覚えたほうがいいかわかりません
解説サイト知りませんか? >>49
https://www.google.co.jp/search?q=Win32+API+入門
「Win32 API 入門」でググった一番目
手元のWindows7で確かめた範囲では、クリップボードビューアチェインがうまく動かなかった、あとは妥当なところ googleさんは同じ検索ワードの組み合わせでも
人によって結果の表示順序が違うと聞いたことがあるけど、
その紹介の仕方で大丈夫なのかしら。 Windows APIのwikipediaが表示されてる X Window System ってのもあるが・・・あまり使われないか。
まあしかしGUIの学習そのものなら話は別だが、何か実用的なプログラム作りたいのなら他の言語使った方が楽だと思うよ。 >>49
他の人も言っているが、CでGUIはやめとけ。
今現在、また今後とも、GUIをCで積極的に作る理由はない。
GUI用の言語としてオススメなのはJavaScript/HTML/CSSだ。これはほぼ間違いない。
ただし、JavaScriptはコミュニティが腐っていて、
Web情報/紙媒体その他全般的に間違いが多すぎるから、
全くの初心者が正しく学ぶのは難しい。
それでもCでGUIを学ぶよりはマシだ。
今の君には分からないだろうが、CはGUI向けの言語ではない。(変数の生存期間等が) 間違いないオススメなのか、難しいけどマシなのかハッキリしろよ
てか真面目な質問だったら可哀想だからネタ回答はやめれ >>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の方がまだマシだろ、という判断。 >>59
なら突っ込めよ。
突っ込む勇気すらないのなら黙っていろ。 歴史的経緯からJavaScriptが有名だけど現在では本来の標準仕様はECMAScript
方言や派生の情報が混乱の原因
https://ja.wikipedia.org/wiki/ECMAScript そもそも「GUI勉強」が何を指してるか次第だな
Windowsアプリを作れるようになればいいだけなのか
スマホ等も含めたクロスプラットフォームな環境を考慮する必要があるのか… GUIっていっても実際の学習ではGとUに分かれてるんじゃないかなあ
手段としてはGraphicalなんだけど、本質のUser Interfaceは不変というかなんというか
C言語はGraphicalに向いている訳ではないけど、できなくもないのがコメントしにくい 人間工学まで含めて考えるなら、
例えばWeb画面レイアウトや画面遷移もそういう要素あるからなあ 組み込み機器のHMIはC言語で実装するのも珍しくないだろ
CソースはXMLから自動生成とかしてるかもだけどさ テキスト画面に表示してるけどGUIみたいなやつはあるな。BIOS画面とか。 BIOS画面でもグラフィックスの画面で本当にGUIになってるの見たことあるな。多分中にLinuxとX入れちゃってるんだろうけど。 >>68
USBマウス刺さってれば、ちゃんとポインティングしよるぜ 最近のBIOS >>70
BIOSにLinuxとかXとか言ってる奴に構うなよ >>73
その部分はBIOS画面としてしか動かんようにしてあるのでは?
必要最低限のプログラムしかないだろうし。
容量の小さいSDメモリみたいなのに入れてるだろうし。
組み込み機器みたいなものだな。 そんなこともあろうかとレスキュー用のミニBIOSが用意してある ところで元の話はなんだったっけ?
CでGUIならGTKがおすすめだっけ? パターン青です、使徒にセントラルドグマを侵食されました
自爆装置が作動します CでのGUIプログラミングは、オススメといっても人それぞれだし。
本人が興味のある手法、あるいは必要に迫らせた手法から順に
手を出してみればいいんじゃないかな Cで低レイヤーなプログラミングを学ぶように低レイヤーなGUIを学ぶならXかなぁ
実用性は皆無とこそ言わずともほぼないが 結局ろくな突っ込みねえじゃねえかよ。
・CではGUIをやらないのがオススメ
だよ。
WindowsアプリにしたければC#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
VisualStudioがこの作りだろ。
組み込み機器でネットワークありなら鯖立ててブラウザから設定してもらうのがベスト。
ルーターとか全てこれだろ。
今時ネットワークもない機器でGUIなんてほぼねえよ。
そもそもお前らがGTKもQtも使ってねえだろ。 >C#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
>VisualStudioがこの作りだろ。
そうだったのか、知らなかった。
VBで作っているのかと思ってた。 あれ、JavaScript最強とか言ってたのどうしたの? >>83
ポイントはそこじゃねえ。VisualStudio自体が何で書かれているかは知らんよ。
ただ、今時、GUIまで含めてCで書く必然性はほぼないんだよ。
保守性を上げる為にも、GUIは設定ファイルを生成し、
各種プログラムを呼び出すだけの単純なコントローラに徹するべきなんだよ。
だからこそVSは各種プログラミング言語をカバーできているのであって。 >>84
C#もGUI用言語としてはゴミだぞ。Cよりはマシだが。 >>83
普通にC++だろ
word,excelも普通にC++ ※未承認広告※
リソーエディタでさくさくGUIが作れちゃう?
今すぐ試そう。
http://katahiromz.web.fc2.com/re/ja >>82
やらないのがおススメとかどうでもいいんだよ
おススメばかりで組める世界なら苦労は無い >>91
ならまずお前がオススメを出せよ、自称苦労人さんよ。
俺なら新規で自由に選択出来るのならまずElectronを検討する。
元々のコードが相当量有るのならグダグダ言わずにそれを使うしかない。
それ以前に、お前らJavaScript/HTML/CSSを知らんだろ?
実際はさらにそれ以前で、お前らGUIなんてほぼやってないだろ?
だからそんな低レベルな突っ込みしか出来ないわけでさ。
Cが十分出来るのなら、JavaScript/HTML/CSSの習熟は簡単だ。
CのGUIなんて悲惨なコードにしかならない。
次の機会があるのなら、騙されたと思って、
ElectronからCプログラム/DLLを呼び出すのも検討に加えてみろよ。
どんだけCのGUIがゴミだったか実感出来るから。
web系()が馬鹿ばかりというのも事実だが、逆に言えば、
馬鹿でも何とかなるようにシステムが組まれてるからこそ成立してるのであって、
この意味では学ぶことも多いぞ。 Electron、少し気になって調べてみたらhello worldアプリのファイルサイズが100MB近くになるとか書いてあってワロタ
さすが最強だなw >>96
動作環境同梱だからな。
でも実際、それで問題ないからVSCodeやatomに使われてる。
しかしこのスレも本当にゴミになったな。
揚げ足取りしか出来ない馬鹿しか居ない。
文句を言う前に、まずオススメのGUIを出してみろよ。
事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
そもそもGUIをCで書いてる奴が居ないんだから。
Electronにはそれ以外にも色々問題はある。
だからElectronが許されるかどうかは確かに問題だが、
それでもいい環境なら今現在GUIに最適なのは間違いない。 ある程度大きなツールなら問題ないだろうけど、
ちょっとしたアプリだと驚きのサイズかな
個人的にお手軽なのはC#(WinForms)で
気合入れるならC++(Win32API)だけど
オススメと言われると悩ましいな
Cはその手のには使ってない Win32APIの肥大化を危惧してCOMを使うようになったな >>97
> 文句を言う前に、まずオススメのGUIを出してみろよ。
> 事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
お前が無視してるだけだろ w
>>>69
>> Cなら普通にgtkだろう
> そもそもGUIをCで書いてる奴が居ないんだから。
なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ... こいつおそらくWin32APIで何か作ったことないんだろうな 今北。なんだこの流れ。
元をたどれば>>49がGUI未経験なのでどれを勉強すればいいか聞いてたのが始まりだよな。
おそらく49はプログラミング初心者だろうから、別にC言語を使わなきゃならないという縛りもないはずだ。
C言語スレではあるものの、サクッとGUIアプリが作れる言語を教えるというのは理にかなっていると思う。
初学者がC言語しか知らないというのも珍しいことではない。
実際、大学や高専ではいまだ最初にC言語を教える学科が多い。
だが、それはC言語を学べば他の言語を学ぶ時の学習コストが大幅に下がるというのも理由の1つとしてあると俺は思う。
ということで、このスレではおすすめのGUIフレームワークの話題が繰り広げられているみたいなのだが、
これはおそらく収拾がつかないぞ。
フレームワークの種類だって数多くあるし、言語もケースバイケースだからなぁ。
結局>>49がどういうプラットフォームでGUIアプリを作ってみたいかによるんだよ。
普段使ってるOSがWindowsかLinuxかだけでも大分違うし、
動くならWindowsだけでいいのか、できるだけクロスプラットフォームにしたいのかでも違うし。
なので、49が黙っている以上、誰もが納得する回答なんて出るわけないんだよなぁ。 C初心者です
苦Cを一通り終えたので練習問題をとこうと思っているのですが、お手頃なレベルの問題が載ってるサイトや問題集とかありますか? >>106
AIZU ONLINE JUDGE
http://judge.u-aizu.ac.jp/onlinejudge/
会員登録が必要だけど、たくさんのプログラミングの問題が載っている。
言語はC言語だけでなく様々な言語が選択可能で、
入力されたテキスト(標準入力)に対し正しい回答(標準出力)を出せればOK。
アルゴリズム力や数学力を鍛えるのには役立つだろう。
序盤は入門者・初心者向けだが、上級者向けの問題もある(というか大半が上級者向け)。 >>107
おもしろいね
わざと制限時間いっぱいメモリいっぱいを目指す大会とか楽しそう >>108
制限時間いっぱいを目指すならタイマー使えばいいし
メモリいっぱいを目指すなら配列使えばいいので大会にならなそう >>100
市販の書籍でCOMに関するいいものはありませんか?
お手持ちのものでもいいです >>107
良いサイトを教えていただきありがとございます!
サイト見るからに難しそうですが頑張ります >>106
お手軽かどうかはわからないが一応この板にはプログラミングのお題スレがある。 配列名に動詞使うのは違和感ありますか?
week_of_day = get_week_of_day[(year + year / 4 - year / 100 +
year / 400 + (13 * month + 8) / 5 + day) % 7]; char *get_week_of_day[7] = {"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"}; >>113
if (m < 3) { y--; m += 12; }
が抜けているのはまずいね あ、忘れてました
おとなしく関数化したほうがいいでしょうか? 違和感といえば week_of_day よりも day_of_week の方がよさそうな点が(以下略 >>117
恥ずかしいです。辞書を引いたら
the day of the weekですね。確かに >>101
> なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
自己紹介乙。
お前は他言語が何も出来ないからその程度の視野なんだよ。
お前ら自身が今現在もGTKを使っててオススメだと思っているのならそれでいいが、
実際はお前らもGTKを使っておらず、それ以前に使ったこともない知ったかぶりだろ。
そういうミスリードはマジで止めろ。
Electronが生まれた理由はあるんだよ。
そして同様に、MSがMFC->Form->WPFと進化してきた理由もある。
この辺を理解出来ないのなら自分は馬鹿だと自覚して自重しろ。迷惑でしかない。 WPF止まりかー
Electron使ってるの?web系の人向けフレームワークに見えるんだけど
本当に心から最強と思ってる? >>119
普通にGTKも使ってるぞ
最近はC言語での開発は減ったけど保守とかあるしな
GUIって聞いてPCとかスマホのアプリ程度しか想像できないような知ったかには用はないからおとなしくROMっとけ 初心者がGUI勉強したいって言ったらPCやスマホのアプリ程度だと思うんだが… >>120
CXって言って欲しいのか?
>>121
保守だろ。
新規案件がない=今現在はそれを積極的に使う理由がない、だよ。
そもそも保守なら今でもMFCやらされている奴もいるだろ。 >>122
べつに>>49は初心者とは言ってないし、今時CでPCとかスマホのアプリ組もうとする奴は初心者と言うより変わりもんだろ w >>124
「初心者」とは言ってないが、
「CでGUIアプリ組む」とも言ってないぞ >>123
> 新規案件がない=今現在はそれを積極的に使う理由がない、だよ。
で、何が言いたいんだ?
消極的だろうがC言語でGUI組む話なんだから、関係ない話したいならよそへ行けよ 自分がC++の半分を理解できる知能を持たないなら、Tcl/Tkでもやっとけ とりあえず初心者向けにガイドラインを出すと、
・とにかく新しい物を使え
に尽きる。Cは歴史も長いから当然色々あるのだが、
GUIも色々試行錯誤していて、結果的に昔のは基本的にゴミだ。
当たり前だが新しい奴はいろいろ改善されているわけでね。
そして初心者なら自分で判断出来る能力はないのだから、他人の判断能力にすがれ。
これも当たり前だがみんなそれぞれの状況で「最適解だ」と考えた物を使ってる。
結果的に、割と妥当な物が採用される確率が高くなる。
んで、今時みんなWebでやってるだろ。理由は簡単、一番簡単だからだよ。
Web系()が馬鹿ばっかりなのは事実だが、
逆に言えば、本当に簡単にGUIが実現出来るからこそ、それで成り立ってる。
これは本当にJavaScript/HTML/CSSをやれば分かる。
これまでのGUIは何だったんだ?と思えるくらい間抜けなほど簡単に色々出来るから。 >>124,126
普通に読んだら>>49は初心者だよ。自分で判断する能力がないんだから。
で、そいつに「CでGUI」みたいなミスリードするな、って話だよ。 いくら説明してもダメなバカっているんだな...
スレタイ100回声に出して読んでから出直してこい 「どーしてもCでやりたいのなら○○だが……
そもそも論で、CでGUIコントロールを記述するのはめんどくせーから余所言語学んだほうが近道」 ■ このスレッドは過去ログ倉庫に格納されています