C言語なら俺に聞け! Part 135©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net
2016/05/10(火) 13:13:49.45ID:3fG5/CbChttp://www.kouno.jp/home/c_faq/
K&R
プログラミング言語C 第2版 ANSI規格準拠
http://www.amazon.co.jp/dp/4320026926
C99
JIS X 3010:2003 プログラム言語C
http://kikakurui.com/x3/X3010-2003-01.html
C11
ISO/IEC 9899:2011 - Information technology -- Programming languages -- C
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853
価格:198 CHF
----
C言語なら俺に聞け
http://echo.2ch.net/test/read.cgi/tech/1408709181/
2014/08/22(金)
【初心者お断り】ガチ規格準拠C専用スレ Part133
http://pc11.2ch.net/test/read.cgi/tech/1201153965/
2008/01/24(木)
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 132
http://pc11.2ch.net/test/read.cgi/tech/1190261457/
2007/09/20(木)
0002デフォルトの名無しさん
2016/05/10(火) 13:14:58.31ID:3fG5/CbChttp://www.geocities.jp/c_cpp_cs/about_c/index.html
0003デフォルトの名無しさん
2016/05/11(水) 12:26:34.34ID:gJ/xQTr/0004デフォルトの名無しさん
2016/05/11(水) 13:50:20.31ID:pvGtAJM0char *s = null;
if (null == s) {
s = "";
}
2.
char *s = null;
if (null == s) s = "";
前者は空文字がカッコ内でしか有効じゃないと思うんだけど、後者は有効なのかやっぱり有効じゃないか誰か教えて!
0005デフォルトの名無しさん
2016/05/11(水) 13:51:53.59ID:7/pimAAr0006デフォルトの名無しさん
2016/05/11(水) 13:53:34.77ID:7/pimAAr0007デフォルトの名無しさん
2016/05/11(水) 13:55:09.91ID:QMXZ8hSlじゃなかったっけ?
0008デフォルトの名無しさん
2016/05/11(水) 14:02:53.36ID:71GbDeiFnullなる変数なり定数なりが定義済みであると仮定すると、
どっちも、空文字列へのポインタをsに代入してる。
んでもって、リテラル文字列の実体は無限エクステント(だったと思う)。
つまり、例えば
char* test() {
char* buffer = "foo";
return buffer;
}
とした場合に於いても、testの戻り値は使うことが出来る。
一見バグってるように見えるけどね。
一方で、配列に対して代入により初期化した場合はそのエクステントは配列のエクステントと等しくなるから
char* test() {
char buffer[] = "foo";
return buffer;
}
とした場合には、testの戻り値は信用出来ない。
0009デフォルトの名無しさん
2016/05/11(水) 14:04:21.81ID:71GbDeiF実際にreadonlyかどうかは環境に依らなかったっけ?
0010デフォルトの名無しさん
2016/05/11(水) 14:12:17.48ID:QMXZ8hSl憶測だけでちゃんと調べてないけど、C90あたりで
リテラルに対する書き込みは環境依存から鼻から悪魔だったような気がするけど
C++とごっちゃになってるのかもしれない
0011デフォルトの名無しさん
2016/05/11(水) 14:21:00.63ID:1vLHQDGP0012デフォルトの名無しさん
2016/05/11(水) 15:14:35.80ID:pvGtAJM0生命期間を知りたかったんです
わかりやすい説明ありがとうございます
理解できました ノシ
0013デフォルトの名無しさん
2016/05/11(水) 16:02:45.59ID:KPNpqwlb生命期間って要するにスコープだろ
0014デフォルトの名無しさん
2016/05/11(水) 16:16:50.99ID:ZuUCgQaqscopeは見た目の範囲
lifetimeは期間
0015デフォルトの名無しさん
2016/05/11(水) 16:27:30.53ID:71GbDeiFそのscopeの定義だとダイナミックスコープもポインタスコープも説明できない。
より正確には、
scopeは変数名に束縛された値が参照できる範囲
extent/lifetimeは値の生存期間
じゃない?
0016デフォルトの名無しさん
2016/05/11(水) 17:01:58.66ID:eH1yb+5y0017デフォルトの名無しさん
2016/05/11(水) 17:50:43.10ID:71GbDeiF構造体へのポインタを使ったメンバアクセスに関するスコーピングなんかがポインタスコープって呼ばれてる。
int foo(struct Position* p) {
p->x = 10; /* xのスコープはレキシカルでもダイナミックでも無い */
}
http://ustcscgy.github.io/wiki/let-over-lambda.html
Although the scoping methods provided by C-like languages are limited,
C programmers need to program across different environments too.
To do so, they often use an imprecisely defined scoping known as pointer scope.
Pointer scope is famous for its difficulty to debug, numerous security risks,
and, somewhat artificially, its efficiency.
0018デフォルトの名無しさん
2016/05/11(水) 18:06:33.12ID:eH1yb+5y0019デフォルトの名無しさん
2016/05/11(水) 18:22:01.58ID:eH1yb+5y『LET OVER LAMBDA Edition 1.0』
http://www.amazon.co.jp/dp/4434133632
の6.4章か・・・。
0020デフォルトの名無しさん
2016/05/12(木) 03:26:25.03ID:+NvLv0pIどうやってC言語の勉強してたんですか?
やっぱ本だけ?
0021デフォルトの名無しさん
2016/05/12(木) 07:08:25.33ID:/eB9RrGz0022デフォルトの名無しさん
2016/05/12(木) 08:06:15.93ID:Ac+Wesiyアホなこと書いてる本のせいで大勢が誤解を持ったままってことが往々にしてあった
0023デフォルトの名無しさん
2016/05/12(木) 11:59:10.80ID:ehHa3Ia2初めて使うコンパイラなんかの場合、ライブラリのマニュアルも含め、精読してたな。
アルゴリズムとかは師匠のコード読んだり、教わったりしていた。
OSもない様な環境でのばりばりのハードウェア制御系だったから、一子相伝って感じだったな。
その後 OS 本体の仕事もやったりしたんで、非常によい経験になったと思う。
0024デフォルトの名無しさん
2016/05/12(木) 19:27:28.09ID:H+I8h1G8アホなことを書いてる Web のせいで大勢が誤解を持ったままってことの方が多いと思うが...
0025デフォルトの名無しさん
2016/05/12(木) 19:36:37.93ID:tDNaM0bchttp://hanabi.2ch.net/test/read.cgi/lic/1454165737/
0026デフォルトの名無しさん
2016/05/12(木) 20:47:27.03ID:USYeYoDr>>20
0027デフォルトの名無しさん
2016/05/12(木) 21:10:14.58ID:QSCTd5b6が印刷されていてとんでもボリューム、殴って殺せる重量感があった
はじめてのCは有害図書
0028デフォルトの名無しさん
2016/05/12(木) 21:31:27.03ID:Fooytq8l亡くなったそうです。
ナムー
人
0029デフォルトの名無しさん
2016/05/12(木) 21:35:47.26ID:6mJeQbGO>>24 は今の話をしてるんだろ
0030デフォルトの名無しさん
2016/05/12(木) 23:08:27.58ID:USYeYoDr昔どうしてたの?って話に今の話をするのがアホってことだろ言わせんな恥ずかしい
0031デフォルトの名無しさん
2016/05/13(金) 04:44:40.44ID:Weatj0gEもし大量ににプリミティブ型を使えばメモリが足りなくなりますか?
0032デフォルトの名無しさん
2016/05/13(金) 05:06:47.80ID:+5h85NoM奥深いにも程があるだろc言語
0033デフォルトの名無しさん
2016/05/13(金) 06:08:43.23ID:OQGFJHwaお前は一旦昔の話をしだしたらずっと昔の話しかしないのかよ w
0034デフォルトの名無しさん
2016/05/13(金) 08:17:29.36ID:ogYSC2Nf話の流れ的にはあれはただのアスペ
0035デフォルトの名無しさん
2016/05/13(金) 08:37:00.20ID:Tinmnd2+ほんの数個なら最適化してレジスタに割り当てちゃうけど
それ以上ならメモリ消費するよ
それを大量に使う現実的でないプログラム書けば不足するだろうねぇ
0036デフォルトの名無しさん
2016/05/13(金) 09:27:04.66ID:Weatj0gEやっぱそうか・・・
それはプログラムが終了するまで解放されないわけですよね?
何週間も回し続けるプログラムならプリミティブも意図的にnew/deleteしなければならないのかな
0037デフォルトの名無しさん
2016/05/13(金) 10:45:14.80ID:2XyS3TKWここCスレだよ。newとかdeleteとかないよ
それはともかく、自動変数(関数ローカル変数)ならスタック上に確保されるので
関数から抜ければ解放される
0038デフォルトの名無しさん
2016/05/13(金) 12:31:35.77ID:LotgazQY基礎的なこと分かってなさそうだから勉強した方がいいよ。
0039デフォルトの名無しさん
2016/05/13(金) 12:37:29.49ID:vpMU1txehttps://twitter.com/epitwit/status/730933208624205824
0040デフォルトの名無しさん
2016/05/13(金) 12:42:28.01ID:ZUyuraMoヒープから確保するのか、スタックから確保するのかを考えれる程度に
よくあるコンパイラの実装について学ぶと良いよ。
んでもってプログラムが終了するまで開放されないってのは普通はヒープでの話になる。
mallocしてfreeしなければその内メモリが足りなくなるだろうね。
# グローバル変数もある意味では開放されないけどそれはまた別物として考える
0041デフォルトの名無しさん
2016/05/13(金) 12:55:47.95ID:3RLOovraID:USYeYoDr もお前も充分アスペ
0042デフォルトの名無しさん
2016/05/13(金) 14:03:47.48ID:K5STjXBE今大量にmalloc&freeをするアプリケーションをlinuxで作っているのです。
そしたらvirtual memoryの使用量が数〜数十GBになっているのです。
しかし実際に使ってる物理メモリは数kbなのです。
あとずっと(1時間とか)そのプログラムを走らせてるとswap領域がグリグリ増えていきます。そして重くなります。
何が気になるって普通のメモリ部分じゃなくてスワップ部分がグリグリ増えていくのです。
これって単純にフリーのし忘れによっておこるのでせうか?
それとも何か内部的仕組みに対して私が悪いことをしてしまっているのでせうか?
このアプリケーション一度に500個くらいのスレッドを動かすものなのですがもしかしてそれに理由があるのでせうか?
virtual memoryの値がグリグリ増えるのは別に構わないのですがswap領域の使用量が増えるのには納得いきませぬ。
ちなみに再帰的構造体を大量に使うのでmalloc以外の方法がありません。
ご教授お願いいたしまし候。
0043デフォルトの名無しさん
2016/05/13(金) 14:44:22.05ID:+7L1Kkktセクタ単位とバイト単位を取り違えているとかいうしょうもない問題もあると見た
0044デフォルトの名無しさん
2016/05/13(金) 14:54:13.63ID:+7L1Kkkt確保・解放はヒープ領域を使う場合の話だけど
C/C++ では他の言語と比べてヒープ領域の利用を避ける傾向がある
可変長データ(テキスト、ファイル系データ、その他複合データ構造)以外は
スタックか静的領域に置くことをまず考える
ただし一応スタックにも上限はあるから大きめのオブジェクト(1kBとか)は避ける
0045デフォルトの名無しさん
2016/05/13(金) 14:58:10.72ID:ZUyuraMo500スレッド程度で数GBってのはmallocの普通の使い方じゃ起こらないと思うんだがなぁ。
unistd.hのgetpagesize()関数が非常に大きな値を返したりしてない?
俺の環境だと4096になったけど。
あと、malloc()の引数にどのくらいの値を使ってる?
0046デフォルトの名無しさん
2016/05/13(金) 15:01:58.10ID:Uh2qXKp7そんな傾向は言語にはねえよ
組み込み系はそうなるだろうけど言語とは独立
0047デフォルトの名無しさん
2016/05/13(金) 15:35:57.01ID:cduHyZK8http://i.imgur.com/THfSwDv.jpg
問題のexecはstudentmulです
一度にmallocしてるサイズはsizeof
struct game_info{
MYSQL *sql;
pthread_t thread;
long gameid;
char isDone;
};
と
struct id_chain{
long id;
struct idchain *left;
struct idchain *right;
};
なのでだいたい16~24byteくらいかなぁとおもいまふ
小さいmallocを頻繁にするのは良くないっていうのをmallocのソース書いた人が言ってるのですがそれはCPU使用量の話なんですよ
なんどもmalloc&freeするんじゃなくて使い終わったものを再利用するようなコードにしたほうがいいですかね?
0048デフォルトの名無しさん
2016/05/13(金) 15:38:00.16ID:cduHyZK80049デフォルトの名無しさん
2016/05/13(金) 15:53:20.89ID:ZUyuraMo小さいmallocを頻繁にするのが良くないのはK&Rのmallocの話だな。
glibcのmallocは小さいmalloc/freeを頻繁にやってもそんなに速度は落ちないように組まれてた筈。
にしても1時間半で46G消費は何かおかしいな。
単純計算で毎秒8MB程消えてる話になる。
ループの中にmallocがあって、それをループ中にfreeし忘れてるとか
そういうミスは無い?
或いはinitしたのにendしてないとか、connectしたのにcloseしてないとかMySQL周りでミスは無い?
0050デフォルトの名無しさん
2016/05/13(金) 15:55:09.76ID:Uh2qXKp7ちゃんとfreeしてないんじゃないの?
あるいはしてるつもりで無関係のアドレスfreeしてたり。
0051デフォルトの名無しさん
2016/05/13(金) 15:55:43.17ID:0l3VxkcG$ ps -o pmem,rss,sz,vsz,cmd -C studentmul
0052デフォルトの名無しさん
2016/05/13(金) 16:32:48.30ID:wbr+ZJxV0053デフォルトの名無しさん
2016/05/13(金) 16:44:30.82ID:cduHyZK8psコマンドの結果はこうなりました
http://i.imgur.com/LfSA3Rm.jpg
valgrindってツールでチェックしてみたらこんな出力がされたのですが関係ありますかねぇ?
pthread_createの中で使われたソースが解放されてないと出ているのですが。
ちなみにheadmanagerって関数の中のfree忘れがあるっていう出力は実際にはメモリリークじゃないので気にしないでくだしあ
0054デフォルトの名無しさん
2016/05/13(金) 17:08:04.12ID:cduHyZK8申し訳ない
言っていなかったがこのアプリケーション500個くらいのスレッドが同時進行しているというだけであってスレッドは20秒くらいで死んでまた生まれるっていう感じの内容
これって関係ある?
0055デフォルトの名無しさん
2016/05/13(金) 17:10:59.22ID:ZUyuraMoうーん
スワップ領域がモリモリ使われるのと直接関係ない気もするが・・・・・・
もしかしてスレッド毎にMySQLをinitしてたりする?
あるいは
https://gist.github.com/
か何処かでもうちょっと全体を見渡せるようなコード片を上げれる?
0056デフォルトの名無しさん
2016/05/13(金) 17:15:40.84ID:ZUyuraMoてことはスレッドあたり300〜400KB程リークしてる、かな
作られたスレッドでは何してんの?
0057デフォルトの名無しさん
2016/05/13(金) 17:16:18.43ID:cduHyZK8...
本当に申し訳ない。
よく見たらスレッドごとにsqlのオブジェクト作ってる。
もしかしてこれが原因?
そういうもんなんだと思ってた
0058デフォルトの名無しさん
2016/05/13(金) 17:22:46.91ID:ZUyuraMoスレッド毎に作ったなら、スレッド毎に消さなきゃ駄目。消してる?
スレッド毎に作ること自体はまぁ(効率は悪いけど)問題ない
0059デフォルトの名無しさん
2016/05/13(金) 17:27:46.77ID:0l3VxkcGそのうちswapに追い出さなきゃならなくなるのは当然だな
0060デフォルトの名無しさん
2016/05/13(金) 17:28:19.19ID:cduHyZK8ちなみに作られたスレッドはオセロやりながらそのゲームの記録をDBに書いてるだけ
そのスレッド達はmalloc使ってない
0061デフォルトの名無しさん
2016/05/13(金) 17:33:39.32ID:ZUyuraMocloseもendも呼んでるなら違うのかねぇ。
MySQLのバージョンはいくつ?
あと、そのスレッドのコードはうp出来ない感じ?
0062デフォルトの名無しさん
2016/05/13(金) 23:22:11.87ID:WY8PSQUsインデックス作った後再構築してないのに新しいファイル見つけるの
速いんだろう?インデックス作っても新しいファイルを適当な場所に
作ったら結局最初から探すのと一緒だからそのファイルに限っていえば
時間かかると思うんだけどOSのほうはすぐ見つけてくれる。
ここらへんが自分の腕じゃプログラミングで実装できないんですが…
何故だかわかります?
0063デフォルトの名無しさん
2016/05/13(金) 23:23:19.02ID:WY8PSQUs一応Cで作ってるのでここで質問さえてもらいました。
0064デフォルトの名無しさん
2016/05/14(土) 00:25:22.08ID:USUvWshCインデックスサービスってので常時監視してるからじゃないかな
0065デフォルトの名無しさん
2016/05/14(土) 09:00:34.19ID:fmllMf1bなるほど…常に差分を発見してるんですね。
でも差分発見ってインデックスファイルをもう一度精査するとかじゃなくて
容量の増減とかで判別してるような…
そう考えたら、同じフォルダで
容量12Kのファイルが消えて同じ容量12Kのファイルが新しく作成された場合
新しいファイル見つけるのってえらく時間がかかりそうな気がしますね…
0066デフォルトの名無しさん
2016/05/14(土) 13:36:09.76ID:f3s9/uBzそもそもアプリケーションとOSで同じことしてると思うなよ。
0067デフォルトの名無しさん
2016/05/14(土) 14:42:49.24ID:5Fb9fh+qgit init && git add && git commit
* インデックスの再構築
rm .init && git init && git add && git commit
* インデックスサービス
inotify git add filename
* インデックス化
git commit
0068デフォルトの名無しさん
2016/05/14(土) 17:41:16.84ID:fmllMf1btxtファイルで閲覧可能なファイル限定なんかな?どうなんだろう
0069デフォルトの名無しさん
2016/05/14(土) 18:05:23.06ID:fLeelvLJ0070デフォルトの名無しさん
2016/05/14(土) 18:11:04.94ID:SbPIcar1スレ違いのような気はする
0071デフォルトの名無しさん
2016/05/19(木) 21:08:04.94ID:TxoTuPPdint *pと
int* pと書いてる場合があるのですが
どちらを使うべきなのですか?
0072デフォルトの名無しさん
2016/05/19(木) 21:28:41.61ID:dUK54jFVint* a,b;
と書くとbはポインタにならない
俺は一番最初に読んだ入門書が前者だったからずっとそっち使ってるけど世間では後者が多い気がする
0073デフォルトの名無しさん
2016/05/19(木) 21:40:00.95ID:L4Xn6zhh原因としては教材の確保、C言語を実行するための環境など。
そういえば20年前30年前なんてほとんど参考書無かったと思うし、この時代は
どうやってC言語勉強してたんですか?
0074デフォルトの名無しさん
2016/05/19(木) 23:00:03.54ID:tYxkNBp00075デフォルトの名無しさん
2016/05/19(木) 23:00:38.25ID:JetDRGhU俺はBoland C++ 3.0を学割で買ったな
今はgccやらLSI-C86試食版やらBoland C++ compilerやらMicrosoft C/C++ Cmpilerやら使えるしいい時代になったよ
0076デフォルトの名無しさん
2016/05/19(木) 23:18:14.36ID:lI3UOE+c「インターネット下さい!」ってネタのが出る前の時代で
パソ通でもやって情報集めないとプログラム言語の書籍なんて
本屋に置いてあるのが全てで良書、悪書の選別が無理だった。
Cコンパイラもフリーの物が存在すること自体想像もしてなかったので
有名所のTC++あたりを買うか、学校のPCのから盗ってくるか
PCサークルの関係からxxxしてくるか。
それでもちょうどVectorからCDxxx選シリーズが出始めた頃だったのが救いだった。
0077デフォルトの名無しさん
2016/05/19(木) 23:29:58.71ID:73EK6oIWアホかー と思いながらBASICやってたな
初歩的な入門書は普通にあった
ライブラリやツールは
パソ通経由かもしくはベクターがCDにまとめて売ってる奴がありがたかった
LSI-C86試食版でCをおぼえた
0078デフォルトの名無しさん
2016/05/20(金) 00:14:50.94ID:oSwuXQltWatcom C/C++は使いやすかった
いまは無料で使えるみたいですね。
0079デフォルトの名無しさん
2016/05/20(金) 02:27:39.41ID:WCEBsdoQ大学は情報学科なんだけど怖くなってきた。
今の小学生って二人に一人はプログラミングができるって本当なんだろうか?
0080デフォルトの名無しさん
2016/05/20(金) 02:32:09.04ID:WCEBsdoQ皆なんでもできるからすごいワクワクしなくなってきた
0081デフォルトの名無しさん
2016/05/20(金) 02:35:11.67ID:WCEBsdoQなんかわくわくしない
0082デフォルトの名無しさん
2016/05/20(金) 02:35:51.62ID:WCEBsdoQもちろん旋盤みたいに技能職じゃなくて技術職でね
0083デフォルトの名無しさん
2016/05/20(金) 02:37:01.92ID:WCEBsdoQ>>75
割れ??
もし割れならネット公開なんてしてもサイバーポリスもいなかった
だろうし氾濫してたんじゃないですか?
0084デフォルトの名無しさん
2016/05/20(金) 04:42:16.28ID:6E3fbfbw文系学科出身者でもプログラミングなんかできる
ただし、詳細な理論まで理解するには専門知識が必要
例えば、データの暗号化とかを本当に理解しようとすれば、モジュロ演算などの整数論の
深い理解と応用力がなければ暗号化/解読の新たなコードを作ることはできない
(ライブラリ利用するだけなら誰でもできる)
技術職とはそういうこと、どちらかといえば単なるプログラマは技能職に近い
0085デフォルトの名無しさん
2016/05/20(金) 07:44:52.19ID:4VXo3Ti0CDの転送するのにどれだけの時間がかかったと思ってるんだよ
そしてそれを上げたままにできるサーバがどれだけあったと思ってるんだよ
0086デフォルトの名無しさん
2016/05/20(金) 07:50:52.02ID:Nm0E3DoF0087デフォルトの名無しさん
2016/05/20(金) 08:16:56.21ID:fK4sx7tuオフ会で FD 交換とかやってたな
0088デフォルトの名無しさん
2016/05/20(金) 08:29:08.86ID:5cANZ/vEあとは共同購入とかな
どっちにしてもオフラインで会えること前提だったよな
0089デフォルトの名無しさん
2016/05/20(金) 09:34:33.72ID:Nm0E3DoF0090デフォルトの名無しさん
2016/05/20(金) 10:00:12.37ID:WCEBsdoQUNIXってのはフリーOSだから
C言語のコンパイラもフリーだったんじゃ?
有料だったんですか?
0091デフォルトの名無しさん
2016/05/20(金) 10:09:53.31ID:WCEBsdoQ普通にCコンパイラ標準でありましたよ?
UNIXは95がでた当時からあっただろうしインストしたらCコンパイラもついてきた
のでは?
0092デフォルトの名無しさん
2016/05/20(金) 11:46:43.26ID:jCV1qcCqでもメジャーなコンパイラはだいたい有料だったよ。
LSIとかBorlandとか。
0093デフォルトの名無しさん
2016/05/20(金) 12:38:02.55ID:EWS23G7J0094デフォルトの名無しさん
2016/05/20(金) 12:43:08.23ID:Nm0E3DoFCの為にUNIX系にするんじゃねぇ…。
0095デフォルトの名無しさん
2016/05/20(金) 12:56:51.00ID:fK4sx7tu> UNIXってのはフリーOSだから
その UNIX とやらが何を指してるのかによるけど初めからフリーだった訳じゃない
0096デフォルトの名無しさん
2016/05/20(金) 13:23:25.79ID:jCV1qcCqそのubuntsuとやらがUbuntuを指すものとしても、Unixとはコードの系統が違うよ。
Multicsという革新的なOSがあってだな
0097デフォルトの名無しさん
2016/05/20(金) 13:24:10.61ID:H0RYJTuaだがネットもない時代に
日本語も不自由な環境やらコンパイラやらわざわざ勉強するとか苦行すぎる
それはフリーじゃなくて嫌儲や
0098デフォルトの名無しさん
2016/05/20(金) 13:39:22.34ID:jCV1qcCqJavaしか読み書きできないようなクズプログラマは腐るほど情報工学系大学から産出されてるらしいけどね。
独学でプログラミング学びましたってレベルですら貴重で
一つでも良いから言語を相当深く知ってる、とか
浅くしか知らなくてもverilogからlispまで何でも触れる、とか
あるいは凡そネットワーク関連で括られる技術なら何でも知ってる、とか
そういった何かに特化したプログラマは枯渇してるから
悲観することは何もないよ。
0099デフォルトの名無しさん
2016/05/20(金) 14:03:26.74ID:DpcPfMoXint *buf;
buf = NULL;
buf = (int *)malloc(100);
for(i = 0;i < 100;i++){
buf[i] = i;
}
↑これが動いちゃって凄く怖くないですか?
0100デフォルトの名無しさん
2016/05/20(金) 14:08:28.87ID:4wIX/qhD0101デフォルトの名無しさん
2016/05/20(金) 14:13:55.00ID:jCV1qcCqそれが怖いようなら、きっとC言語は向いてないんだよ
// 特定の環境では意味した通りに動くよ!
uint16_t* buf = (uint16_t*)0xb8000;
buf[0] = 0x0730;
0102デフォルトの名無しさん
2016/05/20(金) 14:27:51.70ID:4wIX/qhD#include <stdio.h>
#include <string.h>
#include <malloc.h>
int main()
{
int i;
int *buf;
char *str; //
buf = NULL;
buf = (int *)malloc(100);
str = (char *)malloc(10); //
strcpy(str, "ABCDEFGHI"); //
printf("1:%s¥n", str); //
for(i = 0;i < 100;i++){
buf[i] = i;
}
printf("2:%s¥n", str); //
return 0;
}
実行結果
1:ABCDEFGHI
2:
0103デフォルトの名無しさん
2016/05/20(金) 14:40:03.44ID:jCV1qcCq0104デフォルトの名無しさん
2016/05/20(金) 15:41:46.85ID:0SZSpLq/どの辺りが怖いん?
0105デフォルトの名無しさん
2016/05/20(金) 17:24:28.41ID:I2VFTkQSその頃 Linux を使い始めて、「初めて良い環境を手に入れた」と思ったよ。日本語のことも含めてね。
多分、FreeBSD も大差無かったんじゃないかな。まあ、何を良いと思うかは人それぞれだけどね。
0106デフォルトの名無しさん
2016/05/20(金) 17:46:40.38ID:6uv30l7Lむしろ正規表現の勉強ならスクリプトのほうが捗ると思うんだが
0107デフォルトの名無しさん
2016/05/20(金) 17:49:04.24ID:6uv30l7L0108デフォルトの名無しさん
2016/05/20(金) 18:03:35.32ID:tTx5oGeP> 例えcのコンパイラがなかったとしてもunixコマンド自体が構造化プログラムの仕様だからc言語の勉強の代わりになったんでは?
なるかアホ
0109デフォルトの名無しさん
2016/05/20(金) 18:26:15.49ID:Nm0E3DoFまぁハードとOSの関係についての講座やったらそれだけで1年かかっちゃいそうだけど。
0110デフォルトの名無しさん
2016/05/20(金) 18:50:07.63ID:Nf8lVFp1int main()
{
printf(
0111デフォルトの名無しさん
2016/05/20(金) 19:14:50.29ID:WCEBsdoQいやなるんじゃないですか?
25年前に一太郎しか入ってないガラクタのPC持ってましたが
ターミナルからバブルソートのスクリプトとか作ったりしてましたよ?
まーアルゴリズムが楽しくて仕方ないって感じでしたね。
0112デフォルトの名無しさん
2016/05/20(金) 19:38:03.29ID:6E3fbfbw>大学は情報学科なんだけど怖くなってきた。
>とりあえず20年前の事情がきけてよかったですw
>25年前に一太郎しか入ってないガラクタのPC持ってましたが
???
0113デフォルトの名無しさん
2016/05/20(金) 19:39:20.61ID:WCEBsdoQ25年前のPCを10年前に使用してたんですよ。
もう捨てました。機種が何なのかさえ分からないw
0114デフォルトの名無しさん
2016/05/20(金) 19:42:44.54ID:1+9PyLLTいるな。本気だったらちょっと検索してunixの歴史でも
見てきた方がいい。釣られてんのかもしれんが。
0115デフォルトの名無しさん
2016/05/20(金) 19:46:12.75ID:fQtTxPZw0116デフォルトの名無しさん
2016/05/20(金) 20:08:01.24ID:fK4sx7tuカーネルバージョン 1.x の時に日本語なんて使えたっけ?
0117デフォルトの名無しさん
2016/05/20(金) 20:22:10.45ID:WCEBsdoQ捨ててしまった。
ターミナルがある30年前くらいのPCだと
何円くらいするんだろう
レアななものは手に入れたい。
0118デフォルトの名無しさん
2016/05/20(金) 20:44:24.15ID:HJzRWrTX0119デフォルトの名無しさん
2016/05/20(金) 21:11:03.63ID:H0RYJTuaホントは分かっててあえて聞くC使いが怖い
ホントに分からずに聞く馬鹿なC使いが怖い
0120デフォルトの名無しさん
2016/05/20(金) 21:40:22.16ID:WCEBsdoQ羨ましい…
昔の性能でどれだけのことができるか試したいんだけどなー
シミュレータではなく実物そのものがほしいです
0121デフォルトの名無しさん
2016/05/20(金) 22:00:19.87ID:jE3cpxsvナムー
人
0122デフォルトの名無しさん
2016/05/20(金) 22:25:52.77ID:1ED8UVgCSolaris8が無料になった時なんてサンがとち狂ったかと思ったもんだ
0123デフォルトの名無しさん
2016/05/21(土) 00:06:44.35ID:LPDYglBZ0124デフォルトの名無しさん
2016/05/21(土) 08:22:53.67ID:XW0E+OmDベタな考えがうかんだわけだけどこれについてみんなどうおもう?
0125デフォルトの名無しさん
2016/05/21(土) 09:25:24.25ID:4qmWB+Wj0126デフォルトの名無しさん
2016/05/21(土) 09:27:26.82ID:XW0E+OmDすまそ
フレームワークがちょうど人口知能っぽいなって思って
質問してしまいました。
0127デフォルトの名無しさん
2016/05/21(土) 09:34:42.37ID:K70VO2ZY0128デフォルトの名無しさん
2016/05/21(土) 09:41:23.13ID:4qmWB+Wjせやな
>>126
つ http://tamae.2ch.net/prog/
0129デフォルトの名無しさん
2016/05/21(土) 10:54:11.25ID:PCAwvFHK世界ではある程度合意はあるんでしょうか?
>http://kenokabe-techwriting.blogspot.jp/2016/05/c.html
>C言語は純粋関数型である。 「純粋関数型」と「参照透明性」国内の自称関数型コミュニティの胡散臭さと海外論調の違い
0130デフォルトの名無しさん
2016/05/21(土) 11:24:54.71ID:4qmWB+Wjその言語に束縛はあっても代入は無いって事。
Cには代入はあっても束縛はない。
0131デフォルトの名無しさん
2016/05/21(土) 11:43:42.14ID:xEB5od3W0132デフォルトの名無しさん
2016/05/21(土) 11:57:57.53ID:jS5LSITS漢字を表示する手段と、日本語emacsがあればだいたいなんとかなったからな
カーネル0.xのころからXが使えたはずで、X使えりゃまあ表示は問題無いし、
X使わんでも漢字表示できるフレームバッファドライバとか誰か作ってたし、
ネットワークとかシリアル経由でログインするなら
8bitさえ通れば漢字が表示できる端末エミュレータでいけたし
0133デフォルトの名無しさん
2016/05/21(土) 12:46:22.01ID:+EFIShQB20年前ってインターネットがまだ一般に普及してないのに凄いな
0134デフォルトの名無しさん
2016/05/21(土) 13:07:56.86ID:xEB5od3W0135デフォルトの名無しさん
2016/05/21(土) 13:19:59.91ID:5nz199FiOSなしのC言語でlibJPEGを使ってMotionJPEGを再生させようとしています。
開発環境はTrueSTUDIO5.4.2liteでターゲットはSTM32F7です。
Motionの部分は自作できたのですが、JPEGの部分で一部のデータが壊れているようで
「Bogus Huffman table definition」というエラーが出ます。libJPEGはエラーが出るとexit()関数で
外に抜けてしまうのですが、その時当たり前ですがプログラム全体が落ちます。
エラーが出た場合、exitでmain文から抜けるのではなく、特定のアドレスに飛ぶようにしたいのですがいい方法はないでしょうか。
アセンブラはさっぱりなのでできればCでお願いします。
0136デフォルトの名無しさん
2016/05/21(土) 13:29:50.98ID:0WiMYEUzsetjmp + atexit + longjmp
0137デフォルトの名無しさん
2016/05/21(土) 13:45:45.15ID:YA9Dgs9l0138デフォルトの名無しさん
2016/05/21(土) 14:22:01.23ID:xEB5od3Wたとえば条件コンパイルや初期化フラグで抑制できるんじゃないの?
どうしてもダメならその処理に入る前に破損チェックして
入らないようにするとか
0139135
2016/05/21(土) 14:39:41.58ID:5nz199Fiありがとうございます。
こんな便利な関数があったんですね。
まだ解決できてないけど何とかめどが立ちそうです。
>>138
もしかしたらそういうのもあるのかもしれませんが、
見切れてないのでできていません。
破損チェックはCPUの能力的に無理そう(動画にならなくなる)です
ちなみにlibJPEGとはこれのことです
http://libjpeg.sourceforge.net/
0140デフォルトの名無しさん
2016/05/21(土) 15:03:47.21ID:5gRfId3+ソースあるんだから自分で改造すりゃいいだけじゃね?
0141デフォルトの名無しさん
2016/05/21(土) 15:29:00.89ID:ygJHdEnh> ちなみにlibJPEGとはこれのことです
> http://libjpeg.sourceforge.net/
example.c にまんま書いてあるぞ
0142デフォルトの名無しさん
2016/05/21(土) 15:50:06.84ID:0WiMYEUz0143デフォルトの名無しさん
2016/05/21(土) 16:47:10.90ID:JScxRfd8確保する領域固定なら、最初から配列で確保すれば良いのに。
0144デフォルトの名無しさん
2016/05/21(土) 19:53:24.35ID:XW0E+OmDISOファイルのオリジナルディスクを入れてくださいは
C言語のプログラムに精通していたら解決できるんでしょうか?ww
そういうツールもあるんですが全然効果なくて自分で作ったほうが
いいのかなと思い始めました。
0145デフォルトの名無しさん
2016/05/21(土) 20:02:16.63ID:XW0E+OmDそこが気になります。プログラムのクラックなんかも技術的にできるようになりたい。
0146デフォルトの名無しさん
2016/05/21(土) 20:43:47.85ID:p89iMTtM0147デフォルトの名無しさん
2016/05/21(土) 21:25:16.13ID:BejPyWilいや、「は?」とか言われてもな...
0148デフォルトの名無しさん
2016/05/21(土) 22:20:05.59ID:hnLkmDWvプログラム言語は関係ないだろ
0149デフォルトの名無しさん
2016/05/21(土) 22:20:54.87ID:XRbWBdK9辿り着くよ
0150デフォルトの名無しさん
2016/05/21(土) 22:49:54.12ID:XW0E+OmDに対応してる!って断言できるんでしょうね。
それが知りたいんですけどね。それを知るには変換の仕組みを知る必要
があるのでは?つまり
C言語が変換されたらどんなニーモニックになるか。
こういう参考書が殆どないのは歯がゆいですね。
0151デフォルトの名無しさん
2016/05/21(土) 22:54:53.84ID:/Psi2UIt0152デフォルトの名無しさん
2016/05/21(土) 22:59:31.73ID:jS5LSITSコンパイラにアセンブラへ変換するオプションがある
そういうのは自分で変換して確かめようともしない奴には極められない
0153デフォルトの名無しさん
2016/05/21(土) 23:04:59.40ID:XW0E+OmDそれって誰でもC言語に変換できたらコードが解析されて大変になるから
圧力でもかかってるんですかね?大げさですが技術者って技術についてあんまり
おおっぴらにしてほしくないとかあったりするのかな。あまりにも情報が
垂れ流しにされて困ってる人も多いのではと思いますね。
0154デフォルトの名無しさん
2016/05/21(土) 23:05:44.09ID:XW0E+OmDなんかワクワクしてきました。やってみます。
0155デフォルトの名無しさん
2016/05/21(土) 23:11:37.09ID:/vZ9lW0K0156デフォルトの名無しさん
2016/05/21(土) 23:12:46.76ID:/Psi2UItそんな陰謀論めいた話はなくて,単にマシン語で記述するメリットが正直なくなってきたからだよ
0157デフォルトの名無しさん
2016/05/21(土) 23:15:02.99ID:XW0E+OmDでは何故プログラムはクラックされるんですか?
社員が情報を流出してるからですか?
>>156
でも制御系プログラミングとか機械語で書いてるんじゃないでしたっけ?
0158デフォルトの名無しさん
2016/05/21(土) 23:28:28.27ID:/vZ9lW0Kクラックするためには、元のC言語にたどり着く必要が無いから
機械語レベルで解読し、書き換えをすれば良いし、
そのレベルの事ができない人なら、クラックなんてできないよ
0159デフォルトの名無しさん
2016/05/21(土) 23:36:53.61ID:XW0E+OmDさりげなく解答頂きありがとうございます
機械語だけをいじるってそんな器用な事ができるのかと思ったのと同時に
それしか無理なのかなーと納得もしました
0160デフォルトの名無しさん
2016/05/21(土) 23:38:05.09ID:/Psi2UIt今はCで書いてるんじゃないかな
0161デフォルトの名無しさん
2016/05/22(日) 00:48:41.64ID:1OYErECzHacking:美しき策謀 第2版――脆弱性攻撃の理論と実際
https://www.oreilly.co.jp/books/9784873115146/
0x200 プログラミング
0x210 プログラミングとは何か?
0x230 制御構造
======================================
0x252 x86プロセッサ
0x253 アセンブリ言語
======================================
0x260 基本に立ち返る
0x261 文字列
0x263 ポインタ
======================================
0x267 変数のスコープ
0x270 メモリのセグメント化
0x271 C言語におけるメモリセグメント
0162デフォルトの名無しさん
2016/05/22(日) 00:59:24.33ID:5k8BO1OF解析魔法少女美咲ちゃん マジカル・オープン!
OllyDbg を使って、ハッキング
0163デフォルトの名無しさん
2016/05/22(日) 05:36:57.29ID:FgH6NpYj0164デフォルトの名無しさん
2016/05/22(日) 13:25:56.29ID:vCgoPFhrすげーワクワクする
こういうの勉強したらクラックとかできるようになるんでしょ
0165デフォルトの名無しさん
2016/05/22(日) 13:46:55.18ID:vKoFE7Z9住人一人一人を尾行して部屋番号と勤め先を調べたり
電話を盗聴したりするようなもの
魔法みたいに突然出来るものじゃない
0166デフォルトの名無しさん
2016/05/22(日) 16:16:45.97ID:5k8BO1OF通信データのうち転送エラーで、500バイト中、1バイトは、
間違ったデータを返すルーターがあるため、
はなから通信データを信用せず、独自にチェックしているので、
データをいじっても、サーバー側でエラーになる
0167デフォルトの名無しさん
2016/05/22(日) 16:26:27.19ID:llPwnouvgcc+ldのリンカスクリプトについて質問があります。
現在、ヒープとスタックを同じメモリ領域に確保しています。
/* User_heap_stack section, used to check that there is enough RAM left */
._user_heap_stack :
{
. = ALIGN(4);
_heap_start = .;
PROVIDE ( end = . );
PROVIDE ( _end = . );
. = . + _Min_Heap_Size;
. = . + _Min_Stack_Size;
. = ALIGN(4);
} > RAM
このような感じです。それを、ヒープとスタックで別領域のメモリを確保したいので、
/* heap data section */
.heap :
{
. = ALIGN(4);
_end = .;
end = _end;
PROVIDE ( _end = .);
PROVIDE ( end = _end);
PROVIDE ( _heap = .);
*(.heap .heap.*)
*(.HEAP)
. = . + _Min_Heap_Size;
. = ALIGN(4);
} > RAM
(続く)
0168167
2016/05/22(日) 16:26:52.01ID:llPwnouv.stack :
{
_stack_top = .;
PROVIDE ( _stack_top = .);
*(.stack .stack.*)
*(.STACK)
_stack = .;
PROVIDE ( _stack = .);
. = ALIGN(8);
_stack_end = _estack;
PROVIDE ( _stack_end = _estack);
} > DRAM
としてみました。ところが、ヒープに十分な容量があるにもかかわらず、mallocでメモリ確保ができません。
これは、.heapをヒープとして認識されていないような気がするのですが対処法はないでしょうか?
よろしくお願いします。
0169デフォルトの名無しさん
2016/05/22(日) 21:42:51.41ID:vCgoPFhrしたんだけどいまいち応用したいことがないというww
思ったんだけど言語の勉強は簡単だけど情報理論の勉強ってめちゃくちゃ
大変ですね
0170デフォルトの名無しさん
2016/05/22(日) 23:13:00.28ID:kh4BCROc言語はCじゃなくてアセンブラとハードウェア記述言語なんですけど、
ファミコンを作ってみました。
http://youtu.be/ASx5mEBuKJE
色々技術者の感想とか聞いてみたいです。
まだ途中です。
アセンブラとエミュレータも作りました。
なんか響くものありますか?技術者の方々。。。
0171デフォルトの名無しさん
2016/05/23(月) 08:54:53.18ID:bDXz1lkXでもスレ違いだよ!
該当スレは無いから新しくスレッド立ててみたらどう?
ソースが無いから「すげぇ!動いてる!」以外の感想は出ないと思うの。
0172デフォルトの名無しさん
2016/05/23(月) 10:12:40.21ID:EqRWnqiTソースは公開はしてます。昔のsourceforgeで。
FPGA
https://osdn.jp/projects/motonesfpga/scm/git/motonesfpga/
エミュレータ
https://osdn.jp/projects/motonesemu/scm/git/motonesemu/
アセンブラ
https://osdn.jp/users/astoria-d/pf/motonesas/scm/tree/master/
スレ違いですねー。すいません。
時間あるときにスレッド立ててみますー。
0173デフォルトの名無しさん
2016/05/23(月) 10:18:58.57ID:8vldmLpi立てるならこっちの方外衣のではないかな?
0174デフォルトの名無しさん
2016/05/23(月) 10:19:39.52ID:8vldmLpi誤変換すまん
0175デフォルトの名無しさん
2016/05/23(月) 10:36:11.05ID:mr7kZnmZ0176デフォルトの名無しさん
2016/05/23(月) 12:52:21.51ID:BbHX4Eo2エミュレータとかアセンブラ
はこの板でいいような気がする
FPGA は
電気・電子
http://wc2014.2ch.net/denki/
かな
0177デフォルトの名無しさん
2016/05/23(月) 14:29:21.48ID:EqRWnqiTあー、ゲームは全然分かんないんですよ。それこそスーマリやったことある程度なんで。
ゲームの話の方に行っちゃうとちんぷんかんぷんになるかも。
0178デフォルトの名無しさん
2016/05/23(月) 14:31:50.76ID:EqRWnqiTいいですかね?Cとアセンブラ詳しい人達と話してみたかっただけです。
0179デフォルトの名無しさん
2016/05/23(月) 14:33:02.94ID:EqRWnqiTホント優しい世界ですね。日本のそういうとこ好きです。
0180デフォルトの名無しさん
2016/05/23(月) 14:41:05.37ID:RYuvL5QP立てたら教えてくださいね
0181デフォルトの名無しさん
2016/05/23(月) 14:44:07.66ID:rInNNyjw君はなかなかやるなあ。
このスレの俺を除く誰よりも君の方が優秀だ。
0182デフォルトの名無しさん
2016/05/23(月) 15:13:31.31ID:RYuvL5QP何て謙虚な人なんだ
0183デフォルトの名無しさん
2016/05/23(月) 15:45:37.76ID:W4bNz0YE0184デフォルトの名無しさん
2016/05/23(月) 15:49:42.45ID:hH63TVCl0185デフォルトの名無しさん
2016/05/23(月) 16:04:42.33ID:V758P28P0186デフォルトの名無しさん
2016/05/23(月) 16:12:32.37ID:2nxNFjiS同じアセンブラでも命令の内容が違うのは何故ですか?
後NOPとかROTATEとか本によっては無い命令もあります。
もしかしてアセンブラって機種依存ですか?
0187デフォルトの名無しさん
2016/05/23(月) 16:15:28.27ID:bDXz1lkXもしかしなくてもアセンブリは機種依存です。
0188デフォルトの名無しさん
2016/05/23(月) 16:46:57.15ID:WJyvxaEHLLVM, CASL2 などの、仮想・抽象アセンブラを見た方がいい
0189デフォルトの名無しさん
2016/05/23(月) 16:49:01.69ID:2nxNFjiS標準アセンブリというのを学んでみたいんですけど…
0190デフォルトの名無しさん
2016/05/23(月) 17:00:59.85ID:PCdOqhja自分の場合はゲーム作成目的でBASICから呼び出すレベルから始めたけど。
0191デフォルトの名無しさん
2016/05/23(月) 17:30:36.10ID:2nxNFjiS自分が言ったアセンブラはPICアセンブラです
NOPとかMOVLFとかPIC専用アセンブラなんですよ
これ覚えてるだけでもwindows7Cのアセンブラもすんなり理解できますか?
0192デフォルトの名無しさん
2016/05/23(月) 18:04:14.84ID:vsZv3DVO0193デフォルトの名無しさん
2016/05/23(月) 18:25:03.43ID:bDXz1lkXそもそも、CPU毎に機械語が違うんだから
機械語とほぼ一対一対応するアセンブリ言語がCPU毎に違うって事くらい
アセンブリ言語とはなんぞやってのを知ってれば分かる事なんだがなぁ
Windows 7が動作するCPUはx86系だから、
どうしてもアセンブリを覚えてWindows 7上で動かしたいと言うのであれば
x86アセンブリを覚えれば良い。
0194デフォルトの名無しさん
2016/05/23(月) 18:25:55.21ID:bDXz1lkXLLVM IRを覚えるとかね。
0195デフォルトの名無しさん
2016/05/23(月) 18:41:44.56ID:q9fFfbWe0196デフォルトの名無しさん
2016/05/23(月) 19:35:41.34ID:2nxNFjiSx86やx64ってアセンブラの名前だったんですね。
ただCPUごとにアセンブラが違ってもhelloworldが同じコンパイラで
動くのは何故なんだぜ?とは思いますけど
0197デフォルトの名無しさん
2016/05/23(月) 19:42:56.92ID:bDXz1lkXx86やらx64やらは、正確にはアーキテクチャの、それも通称の方。
何故CPUが違っても同じコンパイラで動くか?
コンパイラが頑張ってるからさ。
0198デフォルトの名無しさん
2016/05/23(月) 20:16:14.16ID:2nxNFjiSなるほど!
さっそくx86アセンブラ勉強します!
何て本買えばいいですか?
0199デフォルトの名無しさん
2016/05/23(月) 20:20:05.61ID:zyN7MWUp最近はいいテキストがなくてね‥
0200デフォルトの名無しさん
2016/05/23(月) 20:28:11.43ID:zzMperjFアセンブラの参考書は、無い。むかしから、無い
0201デフォルトの名無しさん
2016/05/23(月) 20:45:08.88ID:vsZv3DVO初めから読むと良い。
もしくはAMDのAm186 and Am188 Family Instruction Set Manual
とか古いのだと量が少ないので楽。
0202デフォルトの名無しさん
2016/05/23(月) 21:21:37.40ID:2nxNFjiS無いww
これはやる気でますね
アセンブラ覚えたらほかの学生と差がつくってことですもんね
0203デフォルトの名無しさん
2016/05/23(月) 21:23:47.26ID:G//Wy7psCPUのマニュアルがそれに相当するよ
MMX命令が〜とか聞いたことあるだろ?
そういう○○命令とそれに対応するニーモニックの組み合わせってだけ
0204デフォルトの名無しさん
2016/05/23(月) 21:56:12.14ID:bDXz1lkXインテルのマニュアル。
昔は上中下巻の中巻が2本立てという謎仕様だったが今よりマシという
0205デフォルトの名無しさん
2016/05/23(月) 22:00:35.12ID:bDXz1lkX強いて言えば、ちょっと古い本だが「高級言語プログラマのためのアセンブラ入門」
http://www.amazon.co.jp/dp/4797332816
とか、「30日でできる! OS自作入門」
http://www.amazon.co.jp/dp/4839919844
とかがx86の参考書としては使えるかな。
0206デフォルトの名無しさん
2016/05/23(月) 22:03:19.56ID:bEUIJma6理解できないなら具体的にコードを引用して誰かに質問すればいい。
0207デフォルトの名無しさん
2016/05/23(月) 22:08:20.97ID:bEUIJma6PICはアセンブラが基本だからアセンブラ分からなければPICいじる意味ないくらいですね。
0208デフォルトの名無しさん
2016/05/24(火) 09:49:37.98ID:AiuqlWdY昔スパコンOS開発部に派遣された時、デバッグで
「ダンプを逆アセして原因探してね。ニーモニック表あそこにあるから」
と言われたのには驚いたわ。PowerPC系は触ったことなかったのに(X68kのアセンブラ解説書を少し読んだ事があった程度)。
0209デフォルトの名無しさん
2016/05/24(火) 13:35:34.09ID:H+uoNdTKRISCのCPUならあり得ますね。逆アセするのも慣れてれば簡単だし。スパコンってppcがベースなんですね。
MMXなどコンパイラが生成しないような命令は特殊用途と割り切って、局所的に使うんですかね?汎用性が下がりますもんね。
0210デフォルトの名無しさん
2016/05/24(火) 13:43:09.34ID:t6Kxw5HS0211デフォルトの名無しさん
2016/05/24(火) 14:30:12.12ID:zoeZ+LAKMMXなどの拡張命令はオプションを指定しないと入らないと思ってましたけど、勝手に使われるもんなんですかね。
0212デフォルトの名無しさん
2016/05/24(火) 15:37:26.91ID:tdzye3Zz勝手に使われて、オプションで使われなくする方が多いんじゃないか?
0213デフォルトの名無しさん
2016/05/24(火) 15:41:55.35ID:t6Kxw5HShttp://www.isus.jp/products/c-compilers/compiler_part1/
0214デフォルトの名無しさん
2016/05/24(火) 17:34:51.51ID:zoeZ+LAKそうなんですね。OS開発してると拡張命令なんて使われるの見たことないんで、アプリの人達は大変ですね。それこそ逆アセなんてもうできないような気がするなあ。
0215デフォルトの名無しさん
2016/05/24(火) 18:25:17.62ID:yhhSFwtW0216デフォルトの名無しさん
2016/05/24(火) 19:02:12.95ID:2lDnpmo+最初からコードいっぱい書かれてて何をしていいか分かりませんでした。
これらのコードは消していいんですか?
ハローワールドのプログラム書きたいだけなんですけど困ってしまいました。
0217デフォルトの名無しさん
2016/05/24(火) 19:09:46.55ID:Mn8/L3Nimfc選ぶなよ。
初心者にはc++/cliがオススメだぞ。
0218デフォルトの名無しさん
2016/05/24(火) 19:22:26.77ID:2lDnpmo+いや通っぽいの選んだら他人と差つくかなと思って
ちなアセンブラ質問してた奴です
とにかくMFCでやりたいんです。
関数も多いそうですしほかの奴だとMFCAPIつかえないんですよね?
0219デフォルトの名無しさん
2016/05/24(火) 19:41:26.30ID:NcOn82rz0220デフォルトの名無しさん
2016/05/24(火) 19:47:03.54ID:9gec5rAihello world 動かせない時点で他人に差をつけられてるよ
独学ならちゃんと順序を踏め
0221デフォルトの名無しさん
2016/05/24(火) 19:53:36.74ID:ehSASbT+directwriteでhello world描画できる方がよっぽど重宝されそう
0222デフォルトの名無しさん
2016/05/24(火) 19:54:21.71ID:LoTiGm3Rまず8ビットマイコンで色々弄って見たらどうだろう
0223デフォルトの名無しさん
2016/05/24(火) 19:56:51.25ID:TK7Wrztfwin3.1とかwin95とかの頃は大流行りだったよ
0224デフォルトの名無しさん
2016/05/24(火) 20:02:23.11ID:ehSASbT+ありがとうございました
文献に2002年とか多いのはそういうことか
0225デフォルトの名無しさん
2016/05/24(火) 20:27:33.40ID:H+uoNdTKま、フレームワーク変わっても書く内容はあんま変わんないような気がするけど。
0226デフォルトの名無しさん
2016/05/24(火) 20:31:41.19ID:D0tZyPZ2gtkとかどうなんでしょう。
0227デフォルトの名無しさん
2016/05/24(火) 20:42:16.63ID:mt0PIiy10228デフォルトの名無しさん
2016/05/24(火) 20:51:45.36ID:TtTF6uFS0229デフォルトの名無しさん
2016/05/24(火) 22:12:51.25ID:fsM+Gj6y> 直前の副作用完了点から次の副作用完了点までの間に,式の評価によって一つのオブジェクトに格納さ れた値を変更する回数は,高々1 回でなければならない。
> さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
の2行めが何を言っているかさっぱり分からんとです。
i = i + 1; // ... (1)
a[i] = i++; // ... (2)
(1)が許されて、(2)は許されないことから逆算して考えてみました。
・「変更前の値の読取り」は、「格納される値 を決定する」ケースにおいてのみ許される
・「変更前の値の読取り」とは、(1)における右辺のi、(2)における左辺のiを示す
イコール「副作用の発生するオブジェクトの値の読み取り(その値は副作用による変更前のものになる)」
・「格納される値 を決定するため」は、「代入される値を算出するため」
((2)は、配列の位置を決めるためだからNG)
という認識であっていますでしょうか?
a = i + i++;
とか(2)がダメなら何となくダメそうに感じましたが、
iが「代入される値を算出するため」にしか使われていないからOKだったりしますか?
0230デフォルトの名無しさん
2016/05/24(火) 22:30:44.98ID:wt2wiSzh君はクラスのことを知っているのか?
継承チェーンをさかのぼって、Baseクラスの同名のメソッドを、
自動的に順々に呼んでいく言語と、
自動的には呼ばないので、自分で呼んでいく言語の、2種類がある
まあ、このスレはCのスレだから、C++の話はスレ違い
0231デフォルトの名無しさん
2016/05/24(火) 23:15:07.66ID:wt2wiSzh>i + i++;
インクリメントを他の式と、組み合わせられない。
必ず単独で使うこと。MISRA-C 2004、ルール12.13
ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
i = 1; の時、
i + i++; は、1 + 2, 2 + 2 のどちらかわからない
次の文が実行される時には、インクリメントされているけど、
そのタイミングは同じ文内では、はっきり決まっていない
func(i, i++);
これも同様に引数が、(1, 2), (2, 2)のどちらかわからない
0232231
2016/05/24(火) 23:27:48.52ID:wt2wiSzh>i = 1; の時
>i + i++; は、1 + 2, 2 + 2 のどちらかわからない
1 + 1, 2 + 1 だな
>func(i, i++);
>これも同様に引数が、(1, 2), (2, 2)のどちらかわからない
(1, 1), (2, 1) だな
0233231
2016/05/24(火) 23:45:57.48ID:wt2wiSzh>さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
これは、MISRA-C 2004、ルール12.2、volatile 変数のことかな?
vがvolatile 変数だとして、
v + v;
ハードウェアをアクセスする度に、コロコロと値が変わるから、
これは、1 + 1, 1 + 2 かも知れない
だから、vに不用意にアクセスせず、
a = v; のように、一旦変数に入れてから、aを使う
v; みたいにアクセスしては、いけない
0234デフォルトの名無しさん
2016/05/25(水) 00:44:05.85ID:gdJJQ64a>>231
> インクリメントを他の式と、組み合わせられない。
> 必ず単独で使うこと。MISRA-C 2004、ルール12.13
例えば
a = b * c + i++;
は、C言語規格上許されると思っているのですけれど、ルールに抵触するのでしょうか?
> ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
a = i + i++;
がダメな理由はしっくりきました。
>>233
>さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
C言語の規格書から持ってきました
JISX3010 2003 プログラム言語C 6-5 式
a[i] = i++;
がダメな理由が、この一文らしいのですが・・・
この文をどう解釈すればよいかさっぱりだったので質問に至った次第です。
0235デフォルトの名無しさん
2016/05/25(水) 03:01:42.03ID:sGJacJpA・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !
0236231
2016/05/25(水) 03:53:16.87ID:0v8CMiQbGoでもインクリメントは単独文で、他の式と組み合わせられないから、
MISRA-C 2004、ルール12.13 には違反する
>a[i] = i++;
これも、i = 1 だとして、a[1], a[2]のどちらかわからない。
ルール12.2、1つの副作用完了点内での、部分式の評価順序は未規定
iの読み取りが、1つの副作用完了点内で、
左辺・右辺の2回起こっていて、そのタイミングがわからない。
とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ
言語の規格書を読んで勉強するのは、素人には絶対無理。
MISRA-Cの日本語訳を書いている集団でさえ、
規格書に詳しい人はいないし、皆欧州の委員会へ、問い合わせて作っている
まず規格書を説明するための、例題や概念が必要。
副作用と副作用完了点、キャストの潜在型・汎整数拡張・平衡化、複合式など
とにかく、バグを避けるには、まぎらわしい書き方をしない。
長い文を書かない。誰も規格について詳しい人はいないから
0237デフォルトの名無しさん
2016/05/25(水) 05:12:46.44ID:gdJJQ64aあー分かった
> とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ
と
> > さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
がイコールか
> 直前の副作用完了点から次の副作用完了点までの間に,式の評価によって一つのオブジェクトに格納さ れた値を変更する回数は,高々1 回でなければならない。
> さらに,変更前の値の読取りは,格納される値 を決定するためだけに行われなければならない
2行目の「格納される値 を決定する」は、1行目の「(高々1回の)格納さ れた値を変更する」を指しているんだ。
iに副作用が発生する式(i++)を書いたのであれば、iの値の読み取りはi++のため以外ではしてはならないと。
それを簡単に言うと
> とにかく、1つの文内で、更新される同じ変数を、2回アクセスしたらダメ
となる
> とにかく、バグを避けるには、まぎらわしい書き方をしない。
> 長い文を書かない。
はい、自分が書く時はそうしたいと思います。
ありがとうございます
お陰で理解できました
0238デフォルトの名無しさん
2016/05/25(水) 07:21:38.02ID:Qq1d4n8Iそれを解決しようと足掻いてるのがMISRA-C
C言語を学ぶ上で参考にするのは構わないが、NGワードに設定しておいた方がノイズリダクション出来て良いかもね
0239デフォルトの名無しさん
2016/05/25(水) 12:55:28.50ID:pZYZ14wu0240デフォルトの名無しさん
2016/05/25(水) 13:12:27.40ID:ADImxnBqM$馬鹿じゃねぇの?()
0241デフォルトの名無しさん
2016/05/25(水) 13:14:52.07ID:PX54IJWYいい学習素材だと思うから、
そのエラーの原因と直しをしてみたら?
0242デフォルトの名無しさん
2016/05/25(水) 13:22:36.73ID:JRGw8yciそれで警告が出るからMSが馬鹿だと結論づけるお前が馬鹿
0243デフォルトの名無しさん
2016/05/25(水) 14:50:18.90ID:Qq1d4n8IMISRA-Cはバカのための規格なので、バカを排除している職場では不要、使ってない。
0244デフォルトの名無しさん
2016/05/25(水) 16:59:51.98ID:grsxbFu15名分の数学の点数と英語の点数を入力する。
以下の計算式に基づいて合計点数を計算する。
(合計点数)=(数学の点数)×1.2 + (英語の点数)×0.8
上位2名を「合格(A)」とする。
上記合格者以外について、以下の計算式に基づいて合計点を再計算する。
(合計点数)=(数学の点数)×0.8 + (英語の点数)×1.2
上位2名を「合格(B)」とする。
つまり、不合格者は1名のみとなる。
同じ合計点数はないと仮定してよい。
こういう課題なんだけど、とりあえず1.2とかの計算はおいといて、入力した点数の最高点の人を合格にしようとしたんだけど
合格が0人目になってしまう 途中までのプログラム下に貼るんでアドバイスください
0245デフォルトの名無しさん
2016/05/25(水) 17:00:51.35ID:grsxbFu1#include<stdio.h>
void main()
{
int i=0;
int a[5];
int b[5];
int c[5];
double tempmax;
printf("5人分の数学の点数を入力してください\n");
for( i=0; i<5; i++)
{
printf("%d人目の数学の点数:",i+1);
scanf_s("%d",&a[i]);
}
printf("英語の点数を入力してください\n");
for( i=0; i<5; i++)
{
printf("%d人目の英語の点数:",i+1);
scanf_s("%d",&b[i]);
}
0246デフォルトの名無しさん
2016/05/25(水) 17:02:05.60ID:grsxbFu1for( i=0; i<5; i++)
{
c[i] = a[i] + b[i];
}
printf("%d,%d,%d,%d,%d",c[0],c[1],c[2],c[3],c[4]);
tempmax = c[0];
for( i=0; i<4; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
}
}
printf("合格(A):%d人目 ",tempmax);
}
0247デフォルトの名無しさん
2016/05/25(水) 17:13:25.35ID:hmlo+RWl表示の方は「何人目」で int (%d) の値として扱ってるね。
他にも色々間違ってるけど、意味のある値が見えてくれば
検討の取っ掛かりになると思う。
0248デフォルトの名無しさん
2016/05/25(水) 17:32:24.26ID:8+OpaV010249デフォルトの名無しさん
2016/05/25(水) 18:09:12.23ID:mqK6DNQr最後のprintfでは最高点tempmaxを表示するようだけど、
何人目だからiを表示しないといけない。
最高点を取った人の番号を保存するための変数を用意して
最後のループを書き換える。
int no=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
no=i;
}
}
printf("合格(A):%d人目 ",no+1);
これでどうだ?
0250デフォルトの名無しさん
2016/05/25(水) 18:12:42.26ID:mqK6DNQrprintf("合格(A):%d人目 %d点",no+1,(int)tempmax);
0251デフォルトの名無しさん
2016/05/25(水) 18:46:25.87ID:grsxbFu1でも、数学英語の両方とも上から5,4,3,2,1て入力したら-858993459人目って出るようになった
どっかforの範囲間違えたかな?
0252デフォルトの名無しさん
2016/05/25(水) 20:07:47.10ID:GAaLSrgNエミュならこの板で良さげなんで、スレッド立ててみました。
http://itest.2ch.net/test/read.cgi/tech/1464174113
良かったら遊びに来てください。
0253デフォルトの名無しさん
2016/05/25(水) 20:09:18.71ID:grsxbFu1自己解決しました
また質問なんだけど上から二番目の点数のデータ、もしくは、一番目のデータを除いた最高点数のデータ
ってどう表現すればいいの?
0254デフォルトの名無しさん
2016/05/25(水) 20:12:29.33ID:6ZfKurqyサンプルはいいとしてヘッダーファイルの警告ぐらい抑止しといてくれ
0255デフォルトの名無しさん
2016/05/25(水) 20:25:21.80ID:Il38ptRzでもあれでしょ?
c++/cliだとセットアップしたばかりのwindowsでは動かないでしょ?
0256デフォルトの名無しさん
2016/05/25(水) 20:46:37.33ID:8+OpaV01ソートしろ
0257デフォルトの名無しさん
2016/05/25(水) 22:07:32.21ID:3hC190Yp固定長テキストデータを、別ファイルに読み込む方法。
例えば3か月分の給料、15万6千円、18万7千円、19万3千円が
156187193とテキストデータで入っている。
156,187,193と切り出したい。
fscanf,fseek使ってもできませんでした。未熟者です。
0258デフォルトの名無しさん
2016/05/25(水) 22:09:08.14ID:8+OpaV01それを3回繰り返す。
0259デフォルトの名無しさん
2016/05/25(水) 22:09:08.78ID:mqK6DNQr次にtempmax2に対しても同じ計算をする。但し、c[i]<tempmax1を果たす。
要するに、最高得点を超えない場合の最高得点を求めればよい。
double tempmax1 = c[0],tempmax2 = c[0];
int no1=0,no2=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax1)
{
tempmax1 = c[i];
no1=i;
}
}
for( i=0; i<5; i++)
{
if(c[i]>tempmax2 && c[i]<tempmax1)
{
tempmax2 = c[i];
no2=i;
}
}
printf("合格(A):%d人目 %d点\n",no1+1,(int)tempmax1);
printf("合格(A):%d人目 %d点\n",no2+1,(int)tempmax2);
0260デフォルトの名無しさん
2016/05/25(水) 22:38:48.23ID:grsxbFu1参考にさせてもらって合格(A)はうまく出力できた
後半の合格(B)を出力するときにc[i]<tempmax1のtemomax1の値が計算が変わって
変わってしまってるからif(c[i]>tempmax2 && c[i]<tempmax1) こういうふうにできない
#include<stdio.h>
void main()
{
int i = 0;
int a[5];
int b[5];
int c[5];
int no1=0,no2=0,no3=0,no4=0,no5=0;
double MAX,MAx,Max,max;
int min;
printf("5人分の数学の点数を入力してください\n");
for (i = 0; i<5; i++)
{
printf("%d人目の数学の点数:", i + 1);
scanf_s("%d", &a[i]);
}
printf("英語の点数を入力してください\n");
for (i = 0; i<5; i++)
{
printf("%d人目の英語の点数:", i + 1);
scanf_s("%d", &b[i]);
}
0261デフォルトの名無しさん
2016/05/25(水) 22:39:39.72ID:grsxbFu1for (i = 0; i<5; i++)
{
c[i] = (double)1.2*a[i] + (double)0.8*b[i];
}
MAX = c[0];
for( i=0; i<5; i++)
{
if(c[i]>MAX)
{
MAX = c[i];
no1=i;
}
}
printf("合格(A):%d人目 ",no1+1,(int)MAX);
MAx = c[0];
for (i = 0; i<5; i++)
{
if (c[i] > MAx && c[i] < MAX)
{
MAx = c[i];
no2 = i;
}
}
printf("%d人目\n", no2 + 1, (int)MAx);
Max = c[0];
0262デフォルトの名無しさん
2016/05/25(水) 22:42:35.41ID:grsxbFu1for (i = 0; i<5; i++)
{
c[i] = (double)0.8*a[i] + (double)1.2*b[i];
}
for (i = 0; i < 5; i++)
{
if (c[i] > Max && c[i]<MAx)
{
Max = c[i];
no3 = i;
}
}
printf("合格(B):%d人目 ", no3 + 1, (int)Max);
max = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] > max && c[i]<Max)
{
max = c[i];
no4 = i;
}
}
0263デフォルトの名無しさん
2016/05/25(水) 22:43:25.22ID:grsxbFu1連投すいません
printf("%d人目\n", no4 + 1, (int)max);
min = c[0];
for (i = 0; i < 5; i++)
{
if (c[i] >min && c[i]<max)
{
min = c[i];
no5 = i;
}
}
printf("不合格:%d人目", no5 + 1, min);
}
0264デフォルトの名無しさん
2016/05/25(水) 23:24:12.02ID:mqK6DNQr1番目2番目とかじゃなくて
5番目6番目とかずっと先まで出力したいなら
並べ替えしてから出力した方が短くて簡単だぞ。
並べ替えの方法はそこら辺のアルゴリズムの本に
幾らでも書いてある。本を探すのが面倒ならwikiにも出ているぞ。
挿入ソートでも見ればC言語のソースも載っている。
それをコピペして使え。
0265デフォルトの名無しさん
2016/05/26(木) 00:56:11.94ID:B/Q2fO5bC/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1456908378/
0266デフォルトの名無しさん
2016/05/26(木) 01:07:08.20ID:z4o5uVHs{
0267デフォルトの名無しさん
2016/05/26(木) 01:11:01.98ID:z4o5uVHs{
int a1 = *(const int*)c1;
int a2 = *(const int*)c2;
}
....
int a[5];
int b[5];
int c[5];
....
qsort(a, sizeof(a)/sizeof(a[0]), sizeof(a[0]), my_cmp);
qsort(b, sizeof(b)/sizeof(b[0]), sizeof(a[0]), my_cmp);
qsort(c, sizeof(c)/sizeof(c[0]), sizeof(a[0]), my_cmp);
0268デフォルトの名無しさん
2016/05/26(木) 11:39:15.27ID:G3Xzn+W/数字をずらすところでうまく行かずに困っています、誰か助けてください。
例:a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4 ずらす数:2
a[0]=2,a[1]=3,a[2]=4,a[3]=0,a[4]=1
長いのでアップローダにtxtファイルをアップロードしました
http://fast-uploader.com/file/7019785771104/
0269デフォルトの名無しさん
2016/05/26(木) 12:42:34.93ID:f2o0rrY8表示するときにずらせばいいのでは。ずらす数をkとすると
for(i=0; i<NUM; i++) {
printf("a[%d] = %d ", i, a[ (i + k) % NUM ]);
}
0270デフォルトの名無しさん
2016/05/26(木) 12:47:12.90ID:Cj4xC8mSデバッガ使ってステップ実行するやりかた覚えたほうが今後のためになると思うが
0271デフォルトの名無しさん
2016/05/26(木) 14:24:54.91ID:ZS10B00Bそれを動かすのが漢だ
0272デフォルトの名無しさん
2016/05/26(木) 14:47:38.51ID:UrTJJdUSコードをよく読めなかったので最初の表示以降を適当に書いたんだけど
どうかな
http://codepad.org/dLVAfTEu
大きなループの中で全部やろうとせず表示とずらしで処理を分けた方が
考えやすいと思うよ
0273デフォルトの名無しさん
2016/05/26(木) 19:05:11.96ID:fhnCNSUE渾身の力作を見せたところ人事の内一名からすごいたたかれました。
人事
「君のプログラムは短いのはいいけど複雑さがなくて物足りない。
MP3形式の録音ソフトとはいえ工夫すれば1万行は超えるけど1000行程度だし、
もっと何とかならなかったのかい?プログラムは簡素なほうがいいけど、
外部ライブラリを読み込んだり、DLLファイルとの連携部分もあったほうが素人っぽくなくなる。
本当に純粋にプログラミング言語中心で学んできた人が描いたようなプログラムだ。」
こんなこといわれてしまいました…
確かに容量は20KB程度で物足りないかもしれません。
他の3社にも同じのみせましたけどすごいって賞賛されました。
でもかなりの酷評(言い方は非常に柔らかい)でこんなこといわれたのは初めてです。
4年間プログラムを根詰めてやってきたなら1000行じゃ物足りないんでしょうか?
もっと外部ファイルととあえて連携させて複雑にしたほうがいいんでしょうか?
虚をつかれたような評価なので大変困惑しております。
皆さんはどうお考えですか?
0274デフォルトの名無しさん
2016/05/26(木) 19:08:09.80ID:fhnCNSUE自分が作ったのはいつも数十KBで収まっているのは気になっていました。
だけど僕は4年間必死にC言語を勉強していて特に足らない点、もちろん業務知識は
0ですが基本的知識でPCの機能を実装することくらいはできます。
何かすごいショックで…
0275デフォルトの名無しさん
2016/05/26(木) 19:15:59.92ID:KKsKg0mH0276デフォルトの名無しさん
2016/05/26(木) 19:39:49.89ID:5yoH/rz8モノがわからんのにどう?とか言われてもね
0277デフォルトの名無しさん
2016/05/26(木) 19:53:00.42ID:fhnCNSUE複雑なプログラムのメリットって何ですかね?
0278デフォルトの名無しさん
2016/05/26(木) 19:53:52.50ID:fhnCNSUEネタではありません。
本当に言われたんです。
0279デフォルトの名無しさん
2016/05/26(木) 20:13:49.57ID:6iXHX0kN評価してくれる人が出てくるだろ
アップできないならネタと言う評価で
0280デフォルトの名無しさん
2016/05/26(木) 20:16:42.24ID:Z+cHO4t2int a = 0;
void Func1(void) {
int b;
static int c;
printf("a:%p b:%p c:%p\n",&a,&b,&c);
if (++a<4) Func1();
else a = 0;
}
void Func2(void) {
int x;
printf("x:%p\n",&x);
Func1();
}
int main(void) {
Func1(); printf("\n");
Func1(); printf("\n");
Func2(); printf("\n");
return 0;
}
0281デフォルトの名無しさん
2016/05/26(木) 20:34:20.78ID:c9LsFSoH複雑さ自体にメリットはない
面接官も「プログラムは簡素な方がいい」と言っているのだろう?
憶測になるけど
もう少し大規模で複雑になるソフトを書いてみてほしいってことだと思うよ
君の見せたプログラムは「Hello world」のような
小さく簡単で単純なプログラムだと言いたいんじゃないかな
0282デフォルトの名無しさん
2016/05/26(木) 20:36:30.24ID:M2X0d2Puデカければいいというものではない 同じ内容なら小さく短く書けるほうがエライ
同じ内容ならシンプルな方がエライ
でも○年間勉強しましたと言ってアピールする材料なのに 1000行程度ではあまりに物足りない
そもそもCで書くのは無駄が多く行数がイヤでも増えるからすぐに数千〜数万行行ってしまう
ファイル一本かならず1,000行以内に収めろと言われたら窮屈で仕方ないくらい
それに、どうせソースを軽く眺めた程度では実力なんてわからないし
イチから教える手間は省けますくらいのアピール力だよ
0283デフォルトの名無しさん
2016/05/26(木) 21:05:22.73ID:fhnCNSUEmp3形式またはwav形式でPCからでる音楽を記録するソフトです。
音質はフリーソフトと全く変わりませんでした。
どこを工夫すればいいんでしょう?全く考えが及びません。
0284デフォルトの名無しさん
2016/05/26(木) 21:07:26.52ID:fhnCNSUEそこらへんを凝ればいいのでしょうか?
どうすれば長くなるのか全く見当がつきません。
0285デフォルトの名無しさん
2016/05/26(木) 21:08:25.74ID:fhnCNSUE別の面接官3人「なかなか1000行かける大学生はいない」
今日の面接官の内一人「1000行は少し物足りないなぁ…」
うーん…
0286デフォルトの名無しさん
2016/05/26(木) 21:13:25.80ID:KKsKg0mH次からは自分の知ってる分野で書こうね。
0287デフォルトの名無しさん
2016/05/26(木) 21:15:40.61ID:0wGqATI00288デフォルトの名無しさん
2016/05/26(木) 21:20:36.96ID:M2X0d2Pu上は「ド素人の大学生にしては頑張ってるね」
(教育して見る価値があるかもしれない)
下は1から教育する気がないブラック寄りの企業
きっと即戦力として鍛えてくれるよ
0289デフォルトの名無しさん
2016/05/26(木) 21:26:33.06ID:fhnCNSUEご名答
0290デフォルトの名無しさん
2016/05/26(木) 21:27:22.89ID:fhnCNSUE0291デフォルトの名無しさん
2016/05/26(木) 21:30:02.48ID:kT3OAx5i面接に来た人を評価するのが目的だからプログラムの評価自体に意味は無い
0292デフォルトの名無しさん
2016/05/26(木) 21:41:57.14ID:fhnCNSUEもしかしたら下の企業で採用あるかも…
ブラックぽいんだよな…
0293デフォルトの名無しさん
2016/05/26(木) 21:44:40.05ID:fhnCNSUE0294デフォルトの名無しさん
2016/05/26(木) 21:47:03.25ID:2uDctnGEみなさんとても丁寧に回答していただいて本当にありがとうございます!
今から皆さんの書いていただいた内容参考に頑張ります、本当にありがとうございました。
0295デフォルトの名無しさん
2016/05/26(木) 21:48:24.27ID:YS/YHZQsコレクターでもいたの?
0296デフォルトの名無しさん
2016/05/26(木) 21:51:58.49ID:YS/YHZQs0297デフォルトの名無しさん
2016/05/26(木) 21:53:29.21ID:tNvxuks+0298片山博文MZ ◆T6xkBnTXz7B0
2016/05/26(木) 21:56:40.29ID:W80Kwxkw他には音量調節とか。
0299デフォルトの名無しさん
2016/05/26(木) 21:57:15.96ID:fhnCNSUE羨ましいです。
ライブラリなんて作ろうと思ったことないです。
面接官的にはライブラリなんかもリンクしてればかっこいいみたいな…
なんなんだ…w
0300片山博文MZ ◆T6xkBnTXz7B0
2016/05/26(木) 22:00:53.60ID:W80Kwxkw0301デフォルトの名無しさん
2016/05/26(木) 22:03:17.27ID:rFYMqLi5こちらは募集に応じてやってる身分なんだから遠慮なんていらないんだよ。
0302デフォルトの名無しさん
2016/05/26(木) 22:13:55.26ID:5yoH/rz80303デフォルトの名無しさん
2016/05/26(木) 22:14:25.46ID:fhnCNSUEイコライザーですか…
それだけで1000行くらいいきそうだww
俺は作りたいものを早く作りたいんですよね
0304片山博文MZ ◆T6xkBnTXz7B0
2016/05/26(木) 22:40:18.79ID:W80Kwxkwシンプル過ぎるソフトは高く売れないんだよ。
0305デフォルトの名無しさん
2016/05/26(木) 22:45:12.30ID:B/Q2fO5b0306デフォルトの名無しさん
2016/05/26(木) 22:53:28.09ID:fhnCNSUEシンプルな目的にはシンプルなフリーソフトが一番だと思うから
単純なGUIのフリーソフトは重宝すると思いますけどねー
Windows7のほうが圧倒的人気なのもシンプルだからじゃないですか?
ソフトウェア業界ってこれから大丈夫なのかな…
0307デフォルトの名無しさん
2016/05/26(木) 22:57:08.32ID:fhnCNSUEこれからIT業界に行きたい(C言語使いまくりたい)のに
残念なニュースばかり…
・ウイルス対策ソフトは半分も防御できていない
・Windows10の不人気ぶり
・OSから個人情報抜きとっている
・officeが1年ライセンスで1万円超え
0308デフォルトの名無しさん
2016/05/26(木) 23:00:44.67ID:UjMbTLsx面接官なんて、気にしない方がいい。
そいつらは、2chの住民には勝てないからさ
0309デフォルトの名無しさん
2016/05/26(木) 23:02:54.50ID:fhnCNSUEその面接官褒めたふりして
「採用の観点からは違う評価するけど意気込みとかはすごいよね…」
とか言ってきてほかの面接官が苦笑したりしてました。
何かデリカシーないですよね。
0310デフォルトの名無しさん
2016/05/26(木) 23:09:46.92ID:rFYMqLi50311デフォルトの名無しさん
2016/05/26(木) 23:46:56.88ID:KKsKg0mHこんな思い込みの激しく人の話を聞かない奴ならそんな事もあるんじゃないかと。
0312デフォルトの名無しさん
2016/05/27(金) 00:35:44.59ID:q7OrZRlwもしこいつがライブラリフル活用したコード書いてたら、複雑すぎるといってお祈り
シンプルなコードだからシンプルすぎると言ってお祈り
要するにコイツを採用したくないだけだわ
俺が採用担当でも、板違いの指摘受けた上で話題までそらしていく奴取りたくねーもん
0313デフォルトの名無しさん
2016/05/27(金) 00:46:42.46ID:TGBFEs+a面接官はコードそのものを見たい訳ではない
応募者がコードを通じてどのように自己PRするか
意地悪っぽい突っ込みに対してどのように受け答えするか、そこを見てるはず
製品発表ではないのだから、売り込むべきはプログラムではなくて自分自身を優先するべきだった
その場の雰囲気がわからないので、どのように返すのが良かったのかは何とも言えないけど
0314デフォルトの名無しさん
2016/05/27(金) 01:14:47.51ID:TGBFEs+a理解しているという基礎力をPRするか、他のレスにあるような機能追加のアィデアを幾つか挙げて応用力をPRするか
どちらかをその場の流れで返すくらいかなあ
実務的なコミュニケーション能力が試されていたんだよ
0315デフォルトの名無しさん
2016/05/27(金) 02:34:39.42ID:q2+au5cxBorland C++ 5.5
Cygwin
が15年前の時点で0円なんだが
ということは20年前も0円だったのかな?
そう考えてみると20年前からプログラミングの敷居なんて
高くないんじゃないかね。
プログラマが不足してるとか言われてるけど日本終わりすぎでしょw
0316デフォルトの名無しさん
2016/05/27(金) 02:38:59.32ID:q2+au5cx安価にプログラム十分できた時代だったんだよね。
何で20年前プログラムしなかったか本当後悔してるわ。
0317デフォルトの名無しさん
2016/05/27(金) 02:50:19.29ID:8Borfexq0318デフォルトの名無しさん
2016/05/27(金) 03:12:12.17ID:2/vps+6rすでにwin95が発売済みなのか…
0319デフォルトの名無しさん
2016/05/27(金) 05:45:29.41ID:Q4WE5iSkCの勉強も手軽に始められるけど、昔はやっぱり敷居が高かったろ。
マルチOSは元のWindowsまで起動不能になる危険があったから
専用に1台調達しなくちゃいけなかった上に、PC自体も高価だった。
Linuxの導入にも手間がかかった。
Windowsで簡単に使えるLSI-C試食版は本当にありがたかったね。
本屋で売ってる雑誌の付録フロッピーで手に入ったし。
0320デフォルトの名無しさん
2016/05/27(金) 06:52:30.71ID:TGBFEs+aプログラムを学んでいる若者が多いそうな(主にC言語とアセンブリ言語)
インドやアフリカあたりの一部地域では、プログラマは医師や弁護士なみのステータスだそうなので、サクセスドリームを
夢見る若者がかなりの人数輩出されてきており、将来的に現在の先進国の地位を脅かす存在になるだろうとか言われているな
0321デフォルトの名無しさん
2016/05/27(金) 07:16:07.78ID:TGBFEs+aJavaやC++などのそれなりのリソースが要求される分野では直接の影響は少ないだろうけど、それらの人材の一部が
C言語でのスキルを武器に大学ででも本格的にプログラミングを学ぶことを考えれば途上国の潜在能力は侮れない
0322デフォルトの名無しさん
2016/05/27(金) 07:17:23.25ID:ak6msHew0323デフォルトの名無しさん
2016/05/27(金) 07:32:20.02ID:TGBFEs+a日本ではIT土方とまで言われる始末
先進国での下層階層と、途上国でのエリート階層ではどちらが居心地が良いか
0324デフォルトの名無しさん
2016/05/27(金) 07:53:05.91ID:aYCv3sEW0325デフォルトの名無しさん
2016/05/27(金) 13:37:38.08ID:q2+au5cxプログラミングならwindowsで十分
0326デフォルトの名無しさん
2016/05/27(金) 13:42:31.76ID:zfNVlpD40327デフォルトの名無しさん
2016/05/27(金) 13:49:46.35ID:S2Ksk7l10328デフォルトの名無しさん
2016/05/27(金) 14:15:22.27ID:q2+au5cx0329デフォルトの名無しさん
2016/05/27(金) 14:21:12.33ID:fvoGjXwUお前が不便だと思いこんでるだけ
Linuxに慣れ親しんだユーザーが無視できない数要るからcygwinやらWindowsにLinuxサブシステムが搭載されたりしてるんだよ
0330デフォルトの名無しさん
2016/05/27(金) 14:32:38.19ID:ftcnTlL4そういうことですわ
0331デフォルトの名無しさん
2016/05/27(金) 14:33:44.62ID:zfNVlpD4MS-DOSがUnixにどこか似ているのも仕方がないね。
>XENIX(ジーニックス・ゼニックス)とは、マイクロソフトによって開発されたUNIXである。
>安価なマイクロコンピュータで動作することから、1980年代半ばから1990年代初頭にかけて
>大きなシェアを誇った。
>1981年の最初の発表時はVersion7ベース、後にSystem III、System Vに追随し、BSD由来の
>機能も積極的に実装した。AT&Tからライセンスを受けた、世界最初の商業ベースのUNIXでもある。
0332デフォルトの名無しさん
2016/05/27(金) 14:39:29.13ID:fvoGjXwU0333デフォルトの名無しさん
2016/05/27(金) 14:47:38.59ID:82PeGMWrVisual Studio C++とかなんとかいうC言語にちょっと似てるだけの全く別な言語環境を除いたら
WindowsでC言語プログラミングってどうやってやるの?
0334デフォルトの名無しさん
2016/05/27(金) 15:24:59.01ID:q2+au5cxトラブル発生したときの解決法だってwindowsに比べて少ないんだし
フリーツールだってlinuxじゃ動かないこともある。
プログラマでも制御系じゃないならlinuxなんて使わないよ
0335デフォルトの名無しさん
2016/05/27(金) 15:27:38.65ID:fvoGjXwUWindowsでまともなメモリリーク検出やメモリ破壊検出ツールある?
0336デフォルトの名無しさん
2016/05/27(金) 15:35:59.86ID:q2+au5cxいやそれはコードレベルでチェックしたらいいじゃん…
0337デフォルトの名無しさん
2016/05/27(金) 15:44:50.72ID:82PeGMWrトラブルが発生した時の解決方法が少ない?
そりゃそうだろうさ。解決方法なんざ1つありゃ十分だ。
そもそもWindowsと違ってトラブルなんざ発生しないしなぁ
0338デフォルトの名無しさん
2016/05/27(金) 15:48:17.93ID:fvoGjXwUお前は他人が書いたコードをいつもメモリ破壊もリークもしてないかコードレベルで漏れなくチェックできてるの?
0339デフォルトの名無しさん
2016/05/27(金) 15:56:40.76ID:fvoGjXwUお前とお前並の才能を持つ人の中だけで。
0340デフォルトの名無しさん
2016/05/27(金) 17:30:50.16ID:D/wh61wT0341デフォルトの名無しさん
2016/05/27(金) 17:33:00.72ID:mk39Rryz0342デフォルトの名無しさん
2016/05/27(金) 18:16:16.54ID:KOeYCo11コールバック関数output()の戻り値をMAD_FLOW_CONTINUEにしているときは発生せず、MAD_FLOW_STOPにすると発生します。
必ず発生するわけではなく、decode()関数に入った1フレーム目では発生しません。
1フレーム+次フレームの冒頭8byteのデータは正常に取得しています。
多分使い方が間違っているのだと思いますがどう間違っているのかがわかりません。
どなたか教えていただけないでしょうか。
よろしくお願いします。
0343デフォルトの名無しさん
2016/05/27(金) 20:05:23.92ID:A4KBBTj7DevPartner とか Purify とかいくらでもあるだろ
0344デフォルトの名無しさん
2016/05/27(金) 23:45:32.50ID:0lBzfo5Dどっちも個人では手が出ない価格だけどな
0345デフォルトの名無しさん
2016/05/28(土) 00:05:34.52ID:BPoJKFOK0346デフォルトの名無しさん
2016/05/28(土) 00:12:25.31ID:MRX8K1iF俺はweb系だからメモリリークとは無縁だ。
0347デフォルトの名無しさん
2016/05/28(土) 00:15:38.44ID:IDSqcyq50348デフォルトの名無しさん
2016/05/28(土) 00:37:30.75ID:MRX8K1iF0349デフォルトの名無しさん
2016/05/28(土) 00:38:15.61ID:S85rxOSy0350デフォルトの名無しさん
2016/05/28(土) 00:39:54.60ID:MRX8K1iF0351デフォルトの名無しさん
2016/05/28(土) 00:46:08.50ID:MRX8K1iF窓は
0352デフォルトの名無しさん
2016/05/28(土) 05:09:58.54ID:C1gDZr5rいつからC言語にGCが導入されたんだ?
0353デフォルトの名無しさん
2016/05/28(土) 08:18:11.92ID:O1fTNVgV開発環境で重要なのは作業環境とビルド時間ですよ
マルチディスプレイでデュアルプロセッサ
これでいい
0354デフォルトの名無しさん
2016/05/28(土) 08:22:49.32ID:O1fTNVgV正直耐えられない
大学でLinux使うところ多いとかいうけどさ
東大がそんなイメージだが
他はソースあんのか?
俺も旧帝だったけどふつうにWindowsに好きなコンパイラ入れてみたいな
感じだったよ?
0355デフォルトの名無しさん
2016/05/28(土) 08:32:01.21ID:8Xha/C3F英語苦手で屁理屈こねて旧帝に逃避した口か
0356デフォルトの名無しさん
2016/05/28(土) 08:55:16.95ID:O1fTNVgV宮廷に逃避とか意味不明
0357デフォルトの名無しさん
2016/05/28(土) 09:02:46.78ID:O1fTNVgV0358デフォルトの名無しさん
2016/05/28(土) 09:30:12.68ID:8Xha/C3F0359デフォルトの名無しさん
2016/05/28(土) 09:36:06.22ID:IDSqcyq5変数名も「合計」とか「売上」って付けているんだろうな
0360デフォルトの名無しさん
2016/05/28(土) 09:39:19.92ID:C1gDZr5r認めたくないが故の自己防衛
0361デフォルトの名無しさん
2016/05/28(土) 10:14:02.23ID:O1fTNVgV器用な人は使えばいいじゃん
それだけのこと
コンプレックスだの忌避だの大げさだな
まー食わず嫌いなところはあるよ俺は
0362デフォルトの名無しさん
2016/05/28(土) 10:15:04.46ID:O1fTNVgVネットワークの中で仕事してて
自分の端末だけLinuxにして効率落とすようなことはしたくねーわな
Linux使う職場は少数のところが多いのは事実
0363デフォルトの名無しさん
2016/05/28(土) 10:26:54.31ID:IDSqcyq5ネット上の複数のサーバーのメンテをやって
必要な時だけVM立ち上げWindowsを起動しています
こんな効率の良い環境って無いと思うけど
0364デフォルトの名無しさん
2016/05/28(土) 10:36:33.13ID:O1fTNVgV開発職じゃないのならLinuxサーバのメンテナンスはあるんかな
俺はWindows製品開発してるからLinux使う必然性がまるでない
0365デフォルトの名無しさん
2016/05/28(土) 10:38:32.52ID:ks9oZ0SWWindows一択。
0366デフォルトの名無しさん
2016/05/28(土) 10:40:46.87ID:IDSqcyq5スマホも内部はLinuxだったりする
ChromeBookも売上げ伸ばしているけど、これもLinuxがベースだな
PC全体の販売数が落ち込んでいる中、これらの売上げは逆に伸びているね
0367デフォルトの名無しさん
2016/05/28(土) 10:46:24.29ID:ks9oZ0SW実のところ、そういうことでLinuxが滅びていくと思う。
0368デフォルトの名無しさん
2016/05/28(土) 10:55:42.99ID:kHgsDhCPここまでUnix系OSを嫌う意味がわからない。
仕事になっているのか?
0369デフォルトの名無しさん
2016/05/28(土) 10:58:42.69ID:IDSqcyq5出入りしている人は開発系が多いと思うけど
0370デフォルトの名無しさん
2016/05/28(土) 11:00:16.42ID:C1gDZr5r内部のサブシステムにLinuxカーネルを丸ごと取り込むことになる予定
0371デフォルトの名無しさん
2016/05/28(土) 11:06:13.65ID:ks9oZ0SW元々UNIXはUNIX板だし。
IT系と言ってもLinux使ってるのはPHPの人たちでしょ?
ホントはPHPはウェブプログラミング板だから。
最近は本来の板が崩壊してJSやPHPがム板に来てるだけで。
0372デフォルトの名無しさん
2016/05/28(土) 11:07:36.94ID:IDSqcyq5思い切って内部も外部もUTF8に統一して欲しいね
そうしたら、各国語版が不要になるからコストも削減できるでしょ
0373デフォルトの名無しさん
2016/05/28(土) 11:08:42.48ID:1gMYSkQh> 内部のサブシステムにLinuxカーネルを丸ごと取り込むことになる予定
こう言うバカってまだいるんだな w
0374デフォルトの名無しさん
2016/05/28(土) 11:14:33.53ID:C1gDZr5rLinuxカーネルではなくてLinuxのバイナリを直接動作させるみたいだな
>「Building Apps for Windows Blog」の投稿によれば、仕組み的にはWindowsカーネル内に「Windows Subsystem for Linux(WSL)」
>というサブシステムを新たに構築し、ユーザーモード上で動作するUbuntuが必要に応じてサブシステムに対して「syscall」を行うことで、
>Linuxバイナリのネイティブ実行をサポートしているようだ。
http://www.itmedia.co.jp/pcuser/articles/1604/12/news086.html
0375デフォルトの名無しさん
2016/05/28(土) 11:16:49.47ID:IDSqcyq5>米国市場でアップル(Apple)製ノートPCのそれを初めて上回ったとするレポートが、調査
>会社IDCから発表されている。
こういうニュースが最近あったけど、
Chromes OSがMacOSのシェアを奪った訳ではないんだよね。
一体どこのシェアが減ったんだろう
0376デフォルトの名無しさん
2016/05/28(土) 11:24:14.00ID:IDSqcyq5スレ落とされちゃったみたいだな
0377342
2016/05/28(土) 11:28:34.09ID:PR4ivl2W0378デフォルトの名無しさん
2016/05/28(土) 11:31:18.14ID:O1fTNVgVこれから衰退していく一方だと思うよ
0379デフォルトの名無しさん
2016/05/28(土) 13:39:56.12ID:gQV7Fme10380デフォルトの名無しさん
2016/05/28(土) 17:55:35.66ID:F56ihzr4わらかすなwww
0381デフォルトの名無しさん
2016/05/28(土) 18:00:33.46ID:F56ihzr40382デフォルトの名無しさん
2016/05/28(土) 18:16:50.94ID:IDSqcyq50383デフォルトの名無しさん
2016/05/28(土) 19:11:40.30ID:DOIDDQ8t何度も言わせるな
0384デフォルトの名無しさん
2016/05/28(土) 19:19:41.86ID:IDSqcyq5[板違い]は5件
312 名前:デフォルトの名無しさん[sage] 投稿日:2016/05/27(金) 00:35:44.59 ID:q7OrZRlw
・・・
俺が採用担当でも、板違いの指摘受けた上で話題までそらしていく奴取りたくねーもん
252 名前:デフォルトの名無しさん[] 投稿日:2016/05/25(水) 20:07:47.10 ID:GAaLSrgN
ちょっと前にFPGAでファミコン作ってみたって書いて、スレ違い、板違いって怒られた者です。
175 名前:デフォルトの名無しさん[sage] 投稿日:2016/05/23(月) 10:36:11.05 ID:mr7kZnmZ
板違いにかまってあげるみんな優しい
170 名前:デフォルトの名無しさん[] 投稿日:2016/05/22(日) 23:13:00.28 ID:kh4BCROc
ちょっと板違いかもしれないんですけど、ここなら技術者がたくさんいるかなって思ったので書きます。
127 名前:デフォルトの名無しさん[sage] 投稿日:2016/05/21(土) 09:34:42.37 ID:K70VO2ZY
どうみても板違い
[余所でやれ]は1件
265 名前:デフォルトの名無しさん[sage] 投稿日:2016/05/26(木) 00:56:11.94 ID:B/Q2fO5b [1/2]
いい加減余所でやれ
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1456908378/
0385デフォルトの名無しさん
2016/05/28(土) 19:43:15.59ID:7/7pYeqL荒らしておいてその発言できるのすげーわ
二度目を言わせるなって意味にも取れるのに
0386デフォルトの名無しさん
2016/05/28(土) 20:32:17.01ID:SMV0h0jn0387デフォルトの名無しさん
2016/05/28(土) 21:59:51.95ID:0J0pDIIN役に立たんスレだな
0388デフォルトの名無しさん
2016/05/29(日) 00:43:27.21ID:lkZpmfRh0389デフォルトの名無しさん
2016/05/29(日) 09:37:12.15ID:hkeRWX+00390デフォルトの名無しさん
2016/05/29(日) 10:52:55.38ID:L9044dGyまだ見てる? 助けを求めるならメーリングリストがあるよ。
http://www.underbit.com/products/mad/
0392デフォルトの名無しさん
2016/05/29(日) 16:28:15.43ID:9AIy5jLg16進でみると0xFED4。この0xFEの箇所のみを取り出したいので
コードを書いてみたんだけど、0xFFになる。なぜ?
double d, wk;
unsigned char c;
d=-300;
wk=d/256;
c=(unsigned char)wk; ←0xFFになる。
0393デフォルトの名無しさん
2016/05/29(日) 16:32:06.42ID:Zak8dvzgunsigned short か unsigned int に汁
0394デフォルトの名無しさん
2016/05/29(日) 16:32:13.75ID:GBRDVTrG0395デフォルトの名無しさん
2016/05/29(日) 16:32:36.94ID:Zak8dvzg0396デフォルトの名無しさん
2016/05/29(日) 16:45:14.60ID:G28yeXzCとなって、unsigned charでキャストすると
(unsigned char)-1=255=0xFF
となるから。
0397デフォルトの名無しさん
2016/05/29(日) 16:54:02.01ID:9AIy5jLg0398デフォルトの名無しさん
2016/05/29(日) 17:00:55.40ID:adFee1tN0399デフォルトの名無しさん
2016/05/29(日) 17:13:26.77ID:GBRDVTrG少し強引ですけど
short d=-300;
unsigned char *p = (unsigned char*)&d;
printf("%02x ",*p);
printf("%02x ",*(p+1));
0400デフォルトの名無しさん
2016/05/29(日) 17:42:46.74ID:Xg0gIt10なんでそんな遅くかつエンディアンに依存するコードを書くかな
short d=-300;
unsigned char c = (unsigned char)(((unsigned short)d & 0xff00u) >> 8);
でいいだろ
0401デフォルトの名無しさん
2016/05/29(日) 21:16:27.92ID:GBRDVTrG多少冗長でも、理解する上でヒントになりそうな書き方をしました
0402デフォルトの名無しさん
2016/05/29(日) 22:39:43.29ID:HnF0l+my0403デフォルトの名無しさん
2016/05/29(日) 22:50:07.31ID:Yd5mQjmt0404デフォルトの名無しさん
2016/05/29(日) 22:52:14.31ID:Yd5mQjmt0405デフォルトの名無しさん
2016/05/29(日) 23:03:50.91ID:HnF0l+myそれって規格のどの辺に書いてあったっけ?
0406デフォルトの名無しさん
2016/05/29(日) 23:09:50.80ID:Yd5mQjmtバイトは連続するビットの列から成る。1 バイト中のビットの個数は,処理系定義である。
最も重みの小さいビットを
最下位ビット(low-order bit)と呼び,最も重みの大きいビットを
最上位ビット(high-order bit)と呼ぶ。
3.7
文字(character) <抽象的意味>データを構成する,制御する,又は表現するために使用する基
本要素から成る集合の要素。
3.7.1
文字(character),1 バイト文字(single-byte character) <プログラム言語 C での意味>1 バイ
トに納まるビット表現。
JIS
http://kikakurui.com/x3/X3010-2003-01.html
0407デフォルトの名無しさん
2016/05/29(日) 23:15:11.37ID:HnF0l+myunsigned char型が1バイトかどうかを訊いたのであって
「1バイト文字」が1バイトに収まるビット表現かどうかは訊いてないんだけど・・・・・・
0408デフォルトの名無しさん
2016/05/29(日) 23:16:10.15ID:+f7Xlk4Euint8_t とかやる
0409デフォルトの名無しさん
2016/05/29(日) 23:22:00.75ID:HnF0l+myちなみに自分でも調べたら
The C Programming Languageの第2版 p195に
Objects declared as characters (char) are large enough to store any member of the
execution character set. If a genuine character from that set is stored in a char object,
its value is equivalent to the integer code for the character, and is non-negative. Other
quantities may be stored into char variables, but the available range of values, and
especially whether the value is signed, is implementation-dependent.
って書かれてて、否定的に解決できたよ。
0410デフォルトの名無しさん
2016/05/30(月) 02:03:21.54ID:izE0wMtN6.2.5 (略)
型 char として宣言されたオブジェクトは,実行基本文字集合の任意の要素を
格納するのに十分な大きさをもつ。実行基本文字集合の任意の要素を
char 型のオブジェクトに格納した場合,その値は非負であることを保証する。
その他の文字を char 型のオブジェクトに格納した場合,その結果の値は
処理系定義とするが,その型で表現可能な値の範囲に含まれなければならない。
(略)
3.6 バイト(byte) 実行環境の基本文字集合の任意の要素を保持するために
十分な大きさをもつアドレス付け可能なデータ記憶域の単位。
0411デフォルトの名無しさん
2016/05/30(月) 11:47:11.51ID:9f9My9NThttp://stackoverflow.com/questions/6971886/exotic-architectures-the-standards-committees-care-about
0412デフォルトの名無しさん
2016/05/30(月) 11:58:51.91ID:x7J+KkRS0413デフォルトの名無しさん
2016/05/30(月) 12:01:10.83ID:XUi+aAngbyteが8じゃない世界ってどんなの?
0414デフォルトの名無しさん
2016/05/30(月) 12:21:47.87ID:1GAxP3Nb2つ上のレスくらい読もう
0415デフォルトの名無しさん
2016/05/30(月) 14:04:40.97ID:5bIpWmdK0416デフォルトの名無しさん
2016/05/30(月) 17:48:01.93ID:Xl0N1v2s0417デフォルトの名無しさん
2016/05/30(月) 19:57:11.44ID:fRR6Jjohはるか雲海の上を音もなく流れ去る気流は、 たゆみない宇宙の営みを告げています。
満天の星をいただく、はてしない光の海を ゆたかに流れゆく風に心を開けば、
きらめく星座の物語も聞こえてくる、 夜の静寂の、なんと饒舌なことでしょうか。
光と影の境に消えていったはるかな地平線も 瞼に浮かんでまいります。
日本航空があなたにお送りする音楽の定期便 ジェットストリーム
皆様の夜間飛行のお供をするパイロットは私、城達也です
0418デフォルトの名無しさん
2016/05/30(月) 20:25:35.37ID:x7J+KkRS0419デフォルトの名無しさん
2016/05/30(月) 20:29:03.49ID:WCkl0VDd0420デフォルトの名無しさん
2016/05/30(月) 20:43:11.28ID:AljfUxzDC言語でポインタを一切使わずにプログラムを書いた場合
C#と同じぐらいのモッサリになりますか?
0421デフォルトの名無しさん
2016/05/30(月) 20:48:27.32ID:uE4rs4cuポインタを全く使わないでできるんだろうか?
0422デフォルトの名無しさん
2016/05/30(月) 20:59:47.77ID:WCkl0VDd戻り値も全部コピー
0423デフォルトの名無しさん
2016/05/30(月) 21:13:21.38ID:pQiH0JIA0424デフォルトの名無しさん
2016/05/30(月) 21:28:39.63ID:YCs7CVa/そもそもファイルポインタ使えないとファイル操作すら不可能になる
0425デフォルトの名無しさん
2016/05/30(月) 21:31:08.36ID:Ma8cRvD3C#に近い実装は、むしろほとんどポインタだろに!
0426デフォルトの名無しさん
2016/05/30(月) 21:57:30.58ID:WCkl0VDdポインタ持たないFORTRANは配列で全部やってた
配列は直接は値渡し出来ないけど、構造体に突っ込めば値渡し出来る
0427デフォルトの名無しさん
2016/05/30(月) 23:12:43.97ID:QLR29Gscシングルトンパターンでなんとか
0428デフォルトの名無しさん
2016/05/31(火) 08:00:23.12ID:OHEvS41mポインタと配列の番号の扱いでどれほど違いがあるのか不明だけど。
0429デフォルトの名無しさん
2016/05/31(火) 09:29:26.04ID:TRYwrF1a巨大な未初期化配列をグローバルにポンと置いてmallocを自作するのが良いのかな
0430デフォルトの名無しさん
2016/05/31(火) 10:19:13.36ID:KVAswEZI0431デフォルトの名無しさん
2016/05/31(火) 10:36:26.66ID:ayjBr20G0432デフォルトの名無しさん
2016/05/31(火) 10:42:19.85ID:N6PjvSqh0433デフォルトの名無しさん
2016/06/01(水) 09:10:57.60ID:2NfamsKM0434デフォルトの名無しさん
2016/06/01(水) 09:44:37.22ID:Jq1IPnFR0435デフォルトの名無しさん
2016/06/01(水) 16:12:18.11ID:pNkDz0bF#include <stdlib.h>
#include <stdio.h>
int main(void)
{
double d[ARRAY_SIZE];
double *p = &d[0];
int i;
for(i = 0; i < ARRAY_SIZE; i++, p++) {
printf(
0436デフォルトの名無しさん
2016/06/01(水) 16:13:54.13ID:pNkDz0bFきのうも失敗した
0437デフォルトの名無しさん
2016/06/01(水) 16:19:01.64ID:z/VHQJBB0438デフォルトの名無しさん
2016/06/01(水) 19:11:01.61ID:gN04e8i3Visual Studio 2010でばっかCやってましたが環境的にはLinuxのほうがいいみたいですね…
それで今日Linuxの基礎的な参考書のNISについて書いてあったことで分からないことがあります。
「どのコンピュータにも同じパスワードでログインできるようにユーザー情報をファイルとして
共有できるのが良い」って書いてありましたけど、これどういう意味ですか?
ネットワーク上のコンピュータに同じパスワードでログインとは???
頭が混乱してしまいました。
0439デフォルトの名無しさん
2016/06/01(水) 19:13:19.24ID:gN04e8i3という感じなんですが、Linuxは全部のPCにどのユーザーもログインできるんですか?
0440デフォルトの名無しさん
2016/06/01(水) 19:16:02.61ID:aOPPmGKo0441デフォルトの名無しさん
2016/06/01(水) 19:18:41.95ID:3reqmZT4compilation terminated.
0442デフォルトの名無しさん
2016/06/01(水) 19:19:53.20ID:r16e60WUついでに言うとLinuxのことはスレどころか板違いな。
0443デフォルトの名無しさん
2016/06/01(水) 19:41:35.00ID:gN04e8i3失礼いたしました。
0444デフォルトの名無しさん
2016/06/01(水) 19:45:36.61ID:uohmGdPEUnix板にはあった。
覗いてみる?
http://echo.2ch.net/test/read.cgi/unix/1139633506/
ぱっと見た感じは、昔の思い出語りの同窓会っぽい
0445デフォルトの名無しさん
2016/06/01(水) 19:52:18.53ID:gN04e8i3随分過疎ってますね…
NISの仕組みがいまいちわかりませんが聞く場所はどうやらないようですねw
概要だけでも知りたいと思っていて…
0446デフォルトの名無しさん
2016/06/01(水) 19:55:03.91ID:aOPPmGKo0447デフォルトの名無しさん
2016/06/01(水) 22:01:07.42ID:r16e60WU0448デフォルトの名無しさん
2016/06/01(水) 23:15:55.67ID:UOAJZ08ohttp://hanabi.2ch.net/test/read.cgi/lic/1454165737/
0449デフォルトの名無しさん
2016/06/02(木) 00:11:29.05ID:j+S1t6S0つまり、すべてのホストについて、そのホストに保存している、本来のユーザ情報を使わず、
代わりに、NIS サーバに登録している、ユーザ情報を使う
ひょっとして君は、/etc/passwd の内容も知らないの?
LPICレベル1 の資格も持っていないの?
0450デフォルトの名無しさん
2016/06/02(木) 00:27:43.73ID:G7HA41c1同窓会で質問すりゃいいじゃねーか
0451デフォルトの名無しさん
2016/06/02(木) 13:20:40.02ID:ninBX+uN0452デフォルトの名無しさん
2016/06/02(木) 13:23:23.18ID:YxqJQ0ycうわーややこしいですね…全く理解できません。
つまりLinuxではAdministrator的なものはなく勝手にユーザーを作る事も
できないし、自分だけのパスワードを持つこともできないって事ですか?
思っていたよりややこしい。
0453デフォルトの名無しさん
2016/06/02(木) 13:49:12.28ID:6s5oWoo8Vim
>>452
LinuxだとrootとかwheelerとかがWindowsのAdministratorに相当する。
rootならアカウント作ることも、コマンド一発でOSを消去することも出来る。
rootじゃなかったらアカウントは勝手に作れないし、勝手に作れるべきじゃない。
0454デフォルトの名無しさん
2016/06/02(木) 15:03:59.28ID:8hoFcAaUWindows でユーザー管理したことがあるなら、ほぼ同じことができると考えていいよ。
Linux の場合、rootは最初から存在するアカウントで、何でもできるので
誤操作しないように通常は一般ユーザーアカウントを作って操作する。
各自は用意されたアカウントとパスワードでアクセスし、自分でパスワードの変更を行う。
これは自分だけのパスワードであり、root ですら分からない(変更はできるけどね)。
0455デフォルトの名無しさん
2016/06/02(木) 15:10:42.87ID:hpz40EtU0456デフォルトの名無しさん
2016/06/02(木) 16:27:09.54ID:YxqJQ0ycえ??・
パスワードは分からないってそれは本当ですか
だって巷のパスワード流出事件はどういう理屈なんでしょう?
だってNISはLinuxサーバーが多いんですよね?
0457デフォルトの名無しさん
2016/06/02(木) 16:41:56.96ID:Isfjmcjv0458デフォルトの名無しさん
2016/06/02(木) 17:05:54.21ID:nZ4cUJen0459デフォルトの名無しさん
2016/06/02(木) 17:08:36.15ID:hpz40EtU何でこのスレで聞き続けるの?
他のスレでやるべきってのは分かるよね?
0460デフォルトの名無しさん
2016/06/02(木) 19:27:57.79ID:+GpFgwT10461デフォルトの名無しさん
2016/06/02(木) 19:28:43.20ID:c2MxArRRてめぇはとことん向いていない スレ選択すらできていないのだから
どっかいけ 邪魔 邪魔
0462デフォルトの名無しさん
2016/06/02(木) 19:37:21.81ID:61iLDved0463デフォルトの名無しさん
2016/06/02(木) 19:40:05.37ID:YxqJQ0yc面白そうだからレス返してしまいました。
ROMします。
0464デフォルトの名無しさん
2016/06/02(木) 19:47:35.77ID:61iLDved0465デフォルトの名無しさん
2016/06/02(木) 19:48:18.55ID:YxqJQ0yc聞いたんですけどダメでしたか…もうちょっと空気読めるようにします。
0466デフォルトの名無しさん
2016/06/02(木) 19:55:53.83ID:E4q84+Ma学習用C言語開発環境っていうコンパイラをインストールしたんだけどこれ上書きモードから変えられないの?
書きなおす時にいちいち上書きされるから全部消すのめんどくさすぎる
0467デフォルトの名無しさん
2016/06/02(木) 21:11:08.81ID:3SQ4v7Pnenterキーの付近にinsertキーがあるだろ?
0468デフォルトの名無しさん
2016/06/02(木) 22:28:40.77ID:lh6gew1Uif文で判定してfalseならreturn -1でいいと思うんだけど
なんでc++とかにはtry-catchがあるの?
書ききれなかった異常系処理のif文を省略するため?
0469デフォルトの名無しさん
2016/06/02(木) 22:54:14.90ID:lh6gew1Uint main(void)
{
FILE *fp;
char *fname = "test.txt";
int c;
fp = fopen( fname, "r" );
if( fp == NULL ){
printf( "%sファイルが開けません\n", fname );
return -1;
}
printf( "\n-- fgetc() --\n" );
while( (c = fgetc( fp )) != EOF ){
printf( "%c", c );
}
fclose( fp );
return 0;
}
0470デフォルトの名無しさん
2016/06/02(木) 22:54:31.49ID:lh6gew1Uhttps://msdn.microsoft.com/ja-jp/library/system.io.streamreader(v=vs.110).aspx
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader("TestFile.txt"))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
}
0471デフォルトの名無しさん
2016/06/02(木) 22:55:19.87ID:lh6gew1U実行時にCLRが例外を補足してlongjmp、みたいな大道芸になんで変わったの?
それが普通と言われたら適応するしかないけど
異常系の処理は全部goto使ってるみたいで不安になってくる・・・
0472デフォルトの名無しさん
2016/06/02(木) 23:05:33.23ID:Xl5LnTax正常系の流れがぶつ切りになってリーダビリティ低下
0473デフォルトの名無しさん
2016/06/02(木) 23:12:40.21ID:UTqywkRWLinuxカーネルのソース読んだ事ないの?
0474デフォルトの名無しさん
2016/06/02(木) 23:28:54.52ID:lh6gew1Uアホでも分かるように教えてほしいんだけど
>>472ってことで問題ないんだよね?
「戻り値検査」方式でなくてもいいよって
お墨付きが欲しい。
on error goto乱発してるみたいで不安なんだよ
0475デフォルトの名無しさん
2016/06/02(木) 23:35:50.80ID:PRVcUOTsシグナルハンドラで捕捉するよりtry cacheの方が簡単に書けるから
0476デフォルトの名無しさん
2016/06/02(木) 23:37:00.77ID:PRVcUOTs0477デフォルトの名無しさん
2016/06/02(木) 23:39:03.67ID:X+hQPb++longjmpと違って例外はちゃんとスタックを辿って呼び出し階層を巻き戻るだけだから。
0479デフォルトの名無しさん
2016/06/02(木) 23:59:19.19ID:lh6gew1U>>477
ありがと。何となく理由があるのが分かってすっきりした。
とりあえず納得できたので、今後はもっと勉強しとくわ。
0480デフォルトの名無しさん
2016/06/03(金) 00:57:12.21ID:MKjSew0Clongjumpもスタックちゃんと面倒見るでしょ?
0481デフォルトの名無しさん
2016/06/03(金) 01:10:19.32ID:tkhh2L0d0482デフォルトの名無しさん
2016/06/03(金) 01:42:57.82ID:MKjSew0Cそうだっけ?
まあsetjmpしたとこにしか飛べないし
環境を持って回らないといけないし
例外の処理としては使い勝手悪すぎだけど
0483デフォルトの名無しさん
2016/06/03(金) 02:17:05.13ID:fVYd85Q0エラー処理は、関数の下の方にまとめて、そこできっちりとリソースの解放をする
エラー時には、gotoでそこへ飛ぶ
0484デフォルトの名無しさん
2016/06/03(金) 15:04:41.99ID:/LuDeT53ツールで同僚がつくったcプログラムよく使う
んです。ただ会社の決まりで安易に許可外の
つかったらだめとかで同僚が主任に怒られています。
スクリプトくらい良いと思いませんか?
プログラムによるって言われそうですが...
皆さんの職場ではどうですか?
0485デフォルトの名無しさん
2016/06/03(金) 16:03:50.57ID:ZxT6RqW/0486デフォルトの名無しさん
2016/06/03(金) 18:49:43.75ID:at7eqVww0487デフォルトの名無しさん
2016/06/03(金) 19:15:46.88ID:H80BNsfCCで作れるものならスクリプトで作れるだろ
というかCは制御系の言語で未だに時代遅れの古臭いコード書くためのものでしょ
低級に近い言語だからメモリ系のエラー乱発で残業続き…
未だに残業とかやってるプログラマは殆どCな
javaとかネットワーク系のエンジニアで残業してるやつなんていない
いい加減Cは廃止したほうがいいよ。
適度にメモリ開放する機能満載のjavaに何で統一しない
0488デフォルトの名無しさん
2016/06/03(金) 20:04:52.54ID:H80BNsfC外部メディアから実行すればいいだけじゃね?
これだとネットワーク内部で検知されないし
0489デフォルトの名無しさん
2016/06/03(金) 20:46:35.53ID:CirWSLm7情報システム部門から呼び出されてエラいことになった人がいたという話を思い出した
0490デフォルトの名無しさん
2016/06/03(金) 20:56:40.02ID:H80BNsfC0491デフォルトの名無しさん
2016/06/03(金) 21:16:12.55ID:5fTzgssX0492デフォルトの名無しさん
2016/06/03(金) 22:02:31.26ID:PtuVt43Q0493デフォルトの名無しさん
2016/06/03(金) 22:10:01.48ID:iHOLs29hjava重いでしょ?
0494デフォルトの名無しさん
2016/06/03(金) 22:11:55.14ID:xBJRJijwこれないとか終わってる
0495デフォルトの名無しさん
2016/06/04(土) 00:09:26.95ID:C2wHM9iL0496デフォルトの名無しさん
2016/06/04(土) 01:13:00.75ID:qkJP2JtG0497デフォルトの名無しさん
2016/06/04(土) 02:06:28.69ID:qkJP2JtGホームページが更新滞ってる気がしますが
というか公開しているツールのレベルの差が気になりますね
2ch書き込みとか結構レベル高いものから計算レベルのものまでw
0498デフォルトの名無しさん
2016/06/04(土) 02:09:28.59ID:qkJP2JtGそれをビジネスにすればいい。フリーツール公開だけじゃ何か作り損な感じですよ。
片山さんがプログラマで十分稼いで中途リタイアしてて善意でサイト運営してるとかなら何も言えませんがね。
割とプログラミングできない学生っているんですよね。こんなのモチベーション次第でいくらでも知らないまま
の状態になれますし。
0499デフォルトの名無しさん
2016/06/04(土) 02:11:49.52ID:qkJP2JtGフリーソフトだなんて見くびってすいませんでした…
0500片山博文MZ ◆T6xkBnTXz7B0
2016/06/04(土) 02:13:45.21ID:9azu721e今、IMEを開発中です。私は嫌われ者なのであまり近付かないで下さい。
0501デフォルトの名無しさん
2016/06/04(土) 02:17:07.96ID:qkJP2JtG同じような課題もあるだろうし、体裁を変えて作ればいいじゃないですか。
単位落とす学生が多くてプログラミングの講義再履修したくねーよ…みたいなのは
めちゃくちゃ多いです。俺はそこらへんに目をつけてビジネス考えていますよ。
0502デフォルトの名無しさん
2016/06/04(土) 02:22:00.82ID:qkJP2JtG1課題につき3000円〜10000円でも単位のためなら普通に頼んでくると思いませんか?
というかもうすでにやってるなら余計なお世話かもしれませんがどんくらい捗ってるか教えて下さい
0503デフォルトの名無しさん
2016/06/04(土) 02:23:40.59ID:qkJP2JtGIMEですか…
なかなかハードルが高いと思いますよ
でも頑張ってください
0504デフォルトの名無しさん
2016/06/04(土) 07:23:29.90ID:fw/QBPwX>俺はそこらへんに目をつけてビジネス考えていますよ。
>>502
>課題につき3000円〜10000円でも単位のためなら普通に頼んでくると思いませんか?
http://echo.2ch.net/test/read.cgi/tech/1434079972/
http://hibari.2ch.net/test/read.cgi/tech/1289715349/
http://hibari.2ch.net/test/read.cgi/tech/1295273862/
http://hibari.2ch.net/test/read.cgi/tech/1309527259/
http://peace.2ch.net/test/read.cgi/tech/1313183984/
0505デフォルトの名無しさん
2016/06/04(土) 14:04:23.48ID:jrcHuPIIもしかしたらプログラムはできるけどプログラマの現実を知ってるから
あえてならない人が多いとか?
0506デフォルトの名無しさん
2016/06/04(土) 14:26:13.39ID:eHL3+XPp減ってるのは職業プログラマ
0507デフォルトの名無しさん
2016/06/04(土) 14:27:03.89ID:jrcHuPII0508デフォルトの名無しさん
2016/06/04(土) 14:30:02.99ID:2hWy5mYVJavaScript実行後のHTMLを取得する方法を教えて下さい。
現在HttpWebRequestのGetResponseメソッドで特定URLのHTMLを取得するコードを実装しているのですが、
取得したHTMLから、さらに呼ばれているJavaScriptの処理で、そのHTMLの内容が変わります。
※innerHTML 等で
JavaScriptが処理された後のHTMLを自動的に生成する方法を教えて下さい。
0509デフォルトの名無しさん
2016/06/04(土) 14:46:14.76ID:hxfbVDs6まずスレタイを255回音読しろ
0510デフォルトの名無しさん
2016/06/04(土) 14:56:44.35ID:jrcHuPII8ビットwww指定ww
0511デフォルトの名無しさん
2016/06/04(土) 16:55:35.81ID:4YNkREF8それを C でやるのは面倒くさい話だけど、
最も簡単なのは実際にウェブブラウザにやらせてからそのデータを受け取る方法だと思う。
ウェブブラウザと通信する方法は OS など、アーキテクチャによる。
Windows なら COM (OLE オートメーション) 経由でやることになると思う。
0512デフォルトの名無しさん
2016/06/04(土) 20:27:02.37ID:jrcHuPIIの意味が分かりません。これは
case WM_CLOSE:
return 0;
の部分のreturn 0のことをいってるんですか?
return が0以外じゃなダメってことですか?
でも日本語的にはWM_CLOSEが返す値が0ってことだから
return 0とは関係ない気がしますね。
return 0はwinprocの返す値が0って意味ですよね。
0513デフォルトの名無しさん
2016/06/04(土) 20:28:40.81ID:jrcHuPII「標準 Windows API」っていうHP
の
12閉じないウインドウ
です。
URL書き込もうとしたらひっかかりました。
0514デフォルトの名無しさん
2016/06/04(土) 20:34:47.55ID:hxfbVDs60515hdghfssh
2016/06/04(土) 21:24:40.15ID:2hWy5mYVOnDocumentCompletedメソッドをオーバラーライドしたいのですが、
コンパイルエラーとなります。
コンパイル警告/エラー無しで正しく継承する具体的なコーディング内容を教えて下さい。
■環境
Visual Studio 2012
C++ CLI
■ソース
public ref class ClassHTTPAuto : WebBrowser{
virtual void OnDocumentCompleted(WebBrowserDocumentCompletedEventArgs e) override = WebBrowser::OnDocumentCompleted{//★
}
};
■コンパイルエラー内容 ★の箇所
'System::Windows::Forms::WebBrowser::OnDocumentCompleted' : 明示的なオーバーライドの署名に一致するメンバーはありません。
'ClassHTTPAuto::OnDocumentCompleted' : 関数は 'System::Windows::Forms::WebBrowser::OnDocumentCompleted' をオーバーライドしません
'override' : オーバーライド指定子の使用法が不適切です。'ClassHTTPAuto::OnDocumentCompleted' は基本 ref クラス メソッドと一致しません
0516デフォルトの名無しさん
2016/06/05(日) 10:22:15.36ID:vhl6udDLくだすれC++/CLI(初心者用)part2
http://echo.2ch.net/test/read.cgi/tech/1268613679/
0517デフォルトの名無しさん
2016/06/05(日) 10:55:06.38ID:5CTJmFcdなぜimeを自作する必要があるんですか?
0518デフォルトの名無しさん
2016/06/05(日) 21:31:36.34ID:6XcU5txU結果はreturnでほしいから成功不成功を返す関数なんてノーサンキューだな
0519デフォルトの名無しさん
2016/06/05(日) 21:43:58.12ID:k+LB+XT6例外がどこで起きるのかが確実に分かればそれでいいよ
ifが無いところでの例外はどうやって判断するの?
0520デフォルトの名無しさん
2016/06/05(日) 23:01:13.80ID:D97p9ZEl最近はoptionalで返すのが流行りだと思うけど
Goとかswiftとか
0521デフォルトの名無しさん
2016/06/05(日) 23:30:37.36ID:6XcU5txUそれならなお良い。0と-1は滅んで。
0522デフォルトの名無しさん
2016/06/05(日) 23:49:53.29ID:fa5iqzk/精神分裂症かと思うわ。
0523デフォルトの名無しさん
2016/06/06(月) 16:21:10.05ID:gQ2+whqJAWKの文字列の先頭は、1だから、0がかえされたらみつからなかったことになる
0524デフォルトの名無しさん
2016/06/07(火) 14:13:54.90ID:NVTOjl7e0525デフォルトの名無しさん
2016/06/07(火) 14:18:59.78ID:QJ1i2iu20526デフォルトの名無しさん
2016/06/07(火) 14:24:01.04ID:TyQk9mVD0527デフォルトの名無しさん
2016/06/07(火) 15:35:54.62ID:PaoygGE3書き換え可能な領域に格納されると思うが。
0528デフォルトの名無しさん
2016/06/07(火) 16:49:11.14ID:DjDItv96typedef *x=(int x, int y);
ちょっと書き方は正しくはわからないですが…
0529デフォルトの名無しさん
2016/06/07(火) 19:24:42.51ID:OKBkxg47void (*funcptr)(int x,int y) = FunctionAddress;
funcptr(x,y);
0530デフォルトの名無しさん
2016/06/07(火) 19:55:42.72ID:DjDItv96いやなんかDLLから明示的に関数呼び出すときに
シグネチャポインタ使った気がするんですが別の言語だったっけ
0531デフォルトの名無しさん
2016/06/07(火) 20:05:50.98ID:RY15Skw40532デフォルトの名無しさん
2016/06/07(火) 20:44:14.35ID:FZ7BirVg戻り値の型を無視したいってこと?
0533デフォルトの名無しさん
2016/06/07(火) 20:58:55.58ID:+/Tgw7NWvoid (*my_funcPtr)(int x, int y);
(FARPROC&)my_funcPtr = GetProcAddress(...)
GetProcAddress は FARPROC (typedef された関数へのポインタ) を返す
0534デフォルトの名無しさん
2016/06/07(火) 21:14:42.50ID:pAUiEzK3お前は>>529が理解出来てないだろ
シグネチャポインタってのの明確な定義が分からんけど
typedefしたいならすればいいだけだ
void (*funcptr)(int x,int y) = FunctionAddress;
↓
typedef void (*funcptr_t)(int x,int y);
funcptr_t funcptr = FunctionAddress;
0535デフォルトの名無しさん
2016/06/07(火) 21:24:04.41ID:sgwXY3KGあまりプログラムをかけない俺にアドバイスをください
どうしたら描けるようになるのか
0536デフォルトの名無しさん
2016/06/07(火) 21:50:33.11ID:L3iK4Feg0537デフォルトの名無しさん
2016/06/07(火) 21:52:38.40ID:sgwXY3KGわかりました
構造体の中に構造体ってややこすぎでしょ
0538デフォルトの名無しさん
2016/06/07(火) 22:15:28.84ID:o0PWSYpM0539デフォルトの名無しさん
2016/06/07(火) 22:19:55.12ID:+/Tgw7NWなんかしらんけど都合のよいヒトまとまりがあるんだな ぐらいの位置づけ <構造体
0540デフォルトの名無しさん
2016/06/07(火) 22:23:33.99ID:sgwXY3KGmemsetの書式は
void *memset(void *buf, int ch, size_t n);
ですが
これはvoid型ポインタがmemsetの戻り値だということなんでしょうか?
0541sage
2016/06/07(火) 22:26:00.06ID:Ap8KFN020542デフォルトの名無しさん
2016/06/07(火) 22:32:36.58ID:AqghaPJwはい、そうです。
Yes, it is.
0543デフォルトの名無しさん
2016/06/07(火) 23:09:42.16ID:RY15Skw4そうみたいだね
でも 10人中10人が memsetに戻り値なんてあったっけ? って言いそう
0544デフォルトの名無しさん
2016/06/07(火) 23:25:59.72ID:hqVkz6fS0545デフォルトの名無しさん
2016/06/07(火) 23:26:30.79ID:E5ZKvz7b言わねえよ
0546デフォルトの名無しさん
2016/06/08(水) 00:42:44.45ID:s78ka570#include <cstring>
class Employee {
public:
int id;
char name[80];
long wage;
void DispData();
};
void Employee::DispData() {
std::cout << id << std::endl;
std::cout << name << std::endl;
std::cout << wage << std::endl;
}
0547デフォルトの名無しさん
2016/06/08(水) 00:43:04.71ID:s78ka570Employee yamaguchi;
Employee* p = &yamaguchi;
p->id = 123456;
strcpy(p->name, "Miho Yamaguchi");
p->wage = 225000;
p->DispData(); // [1]
(*p).DispData(); // [2]
p[0].DispData(); // [3]
0[p].DispData(); // [4]
(&p[0])->DispData(); // [5]
(&yamaguchi)->DispData(); // [6]
yamaguchi.DispData(); // [7]
return 0;
}
0548546
2016/06/08(水) 00:44:43.61ID:s78ka570プログラマ板からこっちに来ました。
0549デフォルトの名無しさん
2016/06/08(水) 00:52:49.92ID:scj+Em0Xうん
0550デフォルトの名無しさん
2016/06/08(水) 02:11:00.48ID:7iuYU3FM0551デフォルトの名無しさん
2016/06/08(水) 06:22:43.52ID:Ss5C/9P6場面によって選ばなきゃならない部分もあるけど、
動作はどれも同じだな、たぶん。
俺は wage が気になる。
0552デフォルトの名無しさん
2016/06/08(水) 06:26:37.12ID:dlZJ+myOwageって何だ
0553デフォルトの名無しさん
2016/06/08(水) 06:53:04.18ID:WRRf0iRn0554デフォルトの名無しさん
2016/06/08(水) 06:57:46.32ID:roXGBAml人事か勤怠管理関係のソフトの例に見える
0555デフォルトの名無しさん
2016/06/08(水) 07:27:45.38ID:vAuk/aLa0556デフォルトの名無しさん
2016/06/08(水) 07:32:51.85ID:Ss5C/9P6年齢の age に w が前置されてるんだと勘違いした。
p->wage = 225000;
4桁ずらしの固定小数点で22歳と6ヶ月か、と早とちり。
0557デフォルトの名無しさん
2016/06/08(水) 07:41:54.64ID:E3Y0fydP4. 0[p].DispData();
5. (&p[0])->DispData();
p[0]って、配列のインデックスやろ。
pが配列なんて、どこにも記述されていないだろ
こういう使い方は、warning を付けてコンパイルしたら、警告されるだろ?
0558デフォルトの名無しさん
2016/06/08(水) 07:42:00.13ID:kd4iSoui0559デフォルトの名無しさん
2016/06/08(水) 07:44:57.32ID:q0/3Jdrhmalloc で確保した領域のアクセスに [index] 使えなくなるよ?
0560デフォルトの名無しさん
2016/06/08(水) 08:13:33.22ID:eNSrjZZk> 年齢の age に w が前置されてるんだと勘違いした。
俺も...
0561デフォルトの名無しさん
2016/06/08(水) 09:19:39.64ID:roXGBAml0562デフォルトの名無しさん
2016/06/08(水) 12:00:43.32ID:zhNLsr9ichar* p='abcdef';
printf("%s\n",*p);
だとエラーが出るのですか?
0563デフォルトの名無しさん
2016/06/08(水) 12:09:26.40ID:kd4iSoui*pはaだから
0564デフォルトの名無しさん
2016/06/08(水) 12:31:56.50ID:DsLC5JRr? char* p='abcdef';
◎ char* p="abcdef";
だから。
0565デフォルトの名無しさん
2016/06/08(水) 13:05:38.58ID:wNXQdM9t2行目 実行時エラー
%s は文字列を要求しているのに (アドレス寄こせ by printfの中の人)
文字 *p を渡してる
%c として *p を渡す 1文字だけ書くケース
%s として p を渡す 文字列を書くケース
0566デフォルトの名無しさん
2016/06/08(水) 13:53:46.21ID:dxYJdGcnこの、 ... ってどういう意味?
0567デフォルトの名無しさん
2016/06/08(水) 13:55:34.85ID:vAuk/aLa0568デフォルトの名無しさん
2016/06/08(水) 14:01:52.59ID:NAh8v38D0569デフォルトの名無しさん
2016/06/08(水) 20:43:00.47ID:eNSrjZZk三点リーダの秘密はねっ♪
教えてあげないよ、チャン
ってこと
0570デフォルトの名無しさん
2016/06/09(木) 07:24:45.61ID:2YxjXa4R0571デフォルトの名無しさん
2016/06/09(木) 07:31:24.70ID:xmM0KaA1何で必要ないと思うのですか?
0572デフォルトの名無しさん
2016/06/09(木) 11:46:23.65ID:CSH5zx3A可変長引数…(可変"個" の方がわかりやすいけど)
printf と同じように引数の個数を固定せずに関数を呼び出せる
ただ一見便利そうだけど作るの面倒くさいし呼び出し側のミスも出やすいので
よっぽどのことがないと使わない
0573デフォルトの名無しさん
2016/06/09(木) 12:48:38.63ID:Qt5FQmqP0574デフォルトの名無しさん
2016/06/09(木) 12:58:49.08ID:BJL7nX2wva_arg 使って自前で引数を掘り起こすようなことはしてないな
0575デフォルトの名無しさん
2016/06/09(木) 14:45:36.87ID:C9jsRYgP他に危険な関数ってないの?
0576デフォルトの名無しさん
2016/06/09(木) 16:07:56.58ID:U6W+Lc/f0577デフォルトの名無しさん
2016/06/09(木) 16:08:59.38ID:U6W+Lc/frealpath( )関数は決してPATH_MAXバイトを超えるファイルパス名をバッファに書き込むことはないので,バッファオーバーランは発生しない」
代替関数の多くは,上限バイト数nを指定できる
gets → fgets
sprintf → snprintf
strcat → strncat
strcpy → strncpy
vsprintf → vsnprintf
6-2. バッファオーバーラン その2「危険な関数たち」
https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_02.html
0578デフォルトの名無しさん
2016/06/09(木) 18:09:36.00ID:uMpaUb47経験と情熱のある方のみ、お願いします。
http://good-hill.xsrv.jp/?id=001222
『 グッドエンジェル 』
投資家と起業家のマッチングサービス
0579デフォルトの名無しさん
2016/06/10(金) 08:03:54.41ID:7xQ2IbxD別に要らん(時もある)でしょ
0580デフォルトの名無しさん
2016/06/10(金) 08:19:25.39ID:dWFrFI9c0581デフォルトの名無しさん
2016/06/10(金) 08:25:30.32ID:w7JbxUjA0582デフォルトの名無しさん
2016/06/10(金) 08:32:06.04ID:k+iM2OAx0583デフォルトの名無しさん
2016/06/10(金) 08:36:50.54ID:7xQ2IbxD入出力はファイルだけじゃないでしょ?
0584デフォルトの名無しさん
2016/06/10(金) 09:29:02.05ID:dvX6huj00585デフォルトの名無しさん
2016/06/10(金) 12:20:57.16ID:3enYqez8Unix では、入出力はすべてファイル扱いだな。
0586デフォルトの名無しさん
2016/06/10(金) 12:36:27.68ID:WP41EhF0%s
この違いはなんですか?
0587デフォルトの名無しさん
2016/06/10(金) 14:00:05.57ID:RBefts0o0588デフォルトの名無しさん
2016/06/10(金) 14:16:00.67ID:WP41EhF0これはありですか?
0589デフォルトの名無しさん
2016/06/10(金) 14:16:41.96ID:w7JbxUjAそのコードで何が起きる事を期待してるの?
0590デフォルトの名無しさん
2016/06/10(金) 14:21:47.75ID:7xQ2IbxDLinux は違うけどね
0591デフォルトの名無しさん
2016/06/10(金) 14:23:17.47ID:Jpvd/BN1変数aに文字列'abc'が代入されること
0592デフォルトの名無しさん
2016/06/10(金) 14:25:46.05ID:kPmCsxvkunsigned data
unsigned ed
unsigned pages
};
構造体でこんな書き方見たけど、int charとかでなくていいの?
0593デフォルトの名無しさん
2016/06/10(金) 14:27:39.42ID:WP41EhF00594デフォルトの名無しさん
2016/06/10(金) 14:32:10.63ID:af0Q21Gidata,ed,pagesの後にセミコロンが無いとダメ
それ以外は問題無い
0595デフォルトの名無しさん
2016/06/10(金) 14:36:51.92ID:w7JbxUjAってのがまさか答えじゃないだろうな?
0596デフォルトの名無しさん
2016/06/10(金) 14:49:37.76ID:7xQ2IbxDまず char が 24bit 以上ある処理系を探せ
0597デフォルトの名無しさん
2016/06/10(金) 21:43:24.11ID:xjOVG2XkLinuxにも標準入出力があって、stdin, stdout, stderrは、ファイルとみなされる
0598デフォルトの名無しさん
2016/06/10(金) 21:50:04.84ID:lJsEyLcpファイルではなくてストリーム
0599デフォルトの名無しさん
2016/06/10(金) 21:56:13.13ID:0l3EpsaB0600デフォルトの名無しさん
2016/06/10(金) 22:08:27.22ID:NC5Uyh6xで、入出力はそれだけだとでも言うの?
0601デフォルトの名無しさん
2016/06/10(金) 22:39:14.41ID:k+iM2OAxC++などだと言語仕様そのものであってOSとは関係ない
0602デフォルトの名無しさん
2016/06/10(金) 22:40:35.84ID:mkeAAIE0元々のコメントはファイルシステムじゃなくてファイル入出力な
0603デフォルトの名無しさん
2016/06/11(土) 00:20:41.65ID:PMKv7Zqi0604デフォルトの名無しさん
2016/06/11(土) 11:36:06.48ID:33DjWdel0605デフォルトの名無しさん
2016/06/11(土) 13:40:16.80ID:JfIPVaDb0606デフォルトの名無しさん
2016/06/11(土) 13:46:09.29ID:YTNOaw6vPICマイコンなどでOSとか使わないだろ
0607デフォルトの名無しさん
2016/06/11(土) 13:50:37.11ID:YTNOaw6v8bitのPICな
0608デフォルトの名無しさん
2016/06/11(土) 20:08:26.18ID:QkEgHpib0609デフォルトの名無しさん
2016/06/12(日) 08:34:14.76ID:dimfy4+IFreeRTOSは、PIC18に対応してる。
PIC16F1 も頑張れば出来るかも。
0610デフォルトの名無しさん
2016/06/12(日) 10:30:45.96ID:WyhS/xEH0611デフォルトの名無しさん
2016/06/12(日) 11:57:43.48ID:XGCv8IVIでないの?
0612デフォルトの名無しさん
2016/06/12(日) 18:15:16.99ID:KbD9aY6tでないの?
0613デフォルトの名無しさん
2016/06/12(日) 18:54:30.98ID:QKWa7och0614デフォルトの名無しさん
2016/06/12(日) 23:40:38.30ID:tgfb+UEQc++のそれとは結構違うように思うのですが
0615デフォルトの名無しさん
2016/06/12(日) 23:52:43.05ID:TqVPhPZJポインタを渡すってことは、アドレス値を渡しているだけ。
0616デフォルトの名無しさん
2016/06/13(月) 04:11:44.00ID:HX8gnVgBNUL
0617デフォルトの名無しさん
2016/06/13(月) 04:30:49.41ID:mBpXhoPbC言語は、「値渡し」しか存在しないから「参照渡し」を実現するために
変数のポインタを「値渡し」で関数の引数として渡す・・・と言う意味。
0618デフォルトの名無しさん
2016/06/13(月) 06:32:13.22ID:eZuZl6sr0619デフォルトの名無しさん
2016/06/13(月) 06:45:20.78ID:HqtqGY0q0620デフォルトの名無しさん
2016/06/13(月) 07:35:01.68ID:LETOL1kbJava から感染ってきた使い方,無論おかしい
0621デフォルトの名無しさん
2016/06/13(月) 09:22:30.37ID:sAnNoOTRは何なんだぜぃ?
0622デフォルトの名無しさん
2016/06/13(月) 09:36:18.27ID:PZTSbFj/そりゃC言語ではないだろう
0623デフォルトの名無しさん
2016/06/13(月) 21:19:43.45ID:HX8gnVgBvoid eight(int *f)
{
int e = *f;
*f = 8*e;
}
int main(void)
{
int e = 6;
eight(&e);
printf(
0624デフォルトの名無しさん
2016/06/13(月) 21:20:32.93ID:HX8gnVgBなにやってんだよ
0625デフォルトの名無しさん
2016/06/14(火) 00:26:34.80ID:pPOUFunw0626デフォルトの名無しさん
2016/06/14(火) 00:49:30.74ID:8yjejgOaint var=6;
a(&var) は参照渡しだ
0627デフォルトの名無しさん
2016/06/14(火) 00:58:14.22ID:8yjejgOa嘘つくなよ
0628デフォルトの名無しさん
2016/06/14(火) 01:01:34.55ID:kHZZ/T/q0629デフォルトの名無しさん
2016/06/14(火) 01:19:01.89ID:8yjejgOa構造体の参照渡ししかり
0630デフォルトの名無しさん
2016/06/14(火) 01:21:16.85ID:pPOUFunw構造体を指すポインタの値を渡してるだけじゃん
0631デフォルトの名無しさん
2016/06/14(火) 01:24:18.88ID:7FWxp3bz0632デフォルトの名無しさん
2016/06/14(火) 01:24:41.89ID:7FWxp3bz0633デフォルトの名無しさん
2016/06/14(火) 01:32:08.93ID:kHZZ/T/qそれ言い出すと関数名も関数へのアドレスを指すけど関数を別の関数の引数として渡したり出来ないよね
0634デフォルトの名無しさん
2016/06/14(火) 01:34:31.47ID:kHZZ/T/q0635デフォルトの名無しさん
2016/06/14(火) 01:35:53.50ID:8yjejgOa0636デフォルトの名無しさん
2016/06/14(火) 01:37:18.92ID:8yjejgOaじゃ何言いたいんだよ
0637デフォルトの名無しさん
2016/06/14(火) 01:39:32.29ID:kHZZ/T/qそれじゃ関数型言語みたいに高階関数の定義とかできる方法あるの?
0638デフォルトの名無しさん
2016/06/14(火) 01:43:49.26ID:8yjejgOaC言語でSwiftも作れる
0639デフォルトの名無しさん
2016/06/14(火) 01:51:37.74ID:kHZZ/T/qポインタで具体的なアドレス使えば何でも書けるのは当たり前
アセンブラでAdd命令で加算するのを、C言語では加算演算子で加算処理を抽象化するように
関数を抽象化する方法を聞いている
関数へのポインタは具体的なアドレスを指す変数でしかないので、抽象的な意味での参照の方法
があるのかどうかということ
0640デフォルトの名無しさん
2016/06/14(火) 02:04:07.83ID:8yjejgOa0641デフォルトの名無しさん
2016/06/14(火) 02:21:18.17ID:/RxT5hmihttp://stackoverflow.com/questions/4995899/difference-between-pointer-and-reference-in-c
0642デフォルトの名無しさん
2016/06/14(火) 02:28:35.18ID:pPOUFunw構造体への参照ってなんだ?
例えばこれの3行目で構造体 x への参照を y にコピーしてるとか思ってる?
struct foo { int a; };
struct foo x = { 1 };
struct foo y = x;
0643デフォルトの名無しさん
2016/06/14(火) 03:40:41.64ID:f6jk1oMAポインタの値渡し
0644デフォルトの名無しさん
2016/06/14(火) 03:41:19.81ID:f6jk1oMAポインタの値渡し
0645デフォルトの名無しさん
2016/06/14(火) 03:41:42.26ID:f6jk1oMA構造体へのポインタの値渡し
0646デフォルトの名無しさん
2016/06/14(火) 06:02:06.24ID:ASWsULQI0647デフォルトの名無しさん
2016/06/14(火) 06:48:32.78ID:kHZZ/T/qそうだよなあ
C言語は実体を持つポインタ変数の値渡ししか出来ないよなあ
C++の変数の参照にしてもただのエイリアスをちょっと扱いやすくしただけだし
あえて言えばnew演算子で生成するクラスインスタンスの参照が本来の参照の意味に一番近いかな
0648デフォルトの名無しさん
2016/06/14(火) 07:40:25.03ID:c6cCaMbO「構造体と共用体は、シンプルなデータの集約や、ハードウェアや外部の型の上にデータ構造を定義する
方法として使うことを意図されています」
http://www.kmonos.net/alang/d/struct.html
0649デフォルトの名無しさん
2016/06/14(火) 07:40:33.97ID:f6jk1oMA>new演算子で生成するクラスインスタンスの参照
new はクラスへのポインタを渡すから
これもポインタの値渡し
0650デフォルトの名無しさん
2016/06/14(火) 07:44:38.06ID:c6cCaMbOにせものならある
0651デフォルトの名無しさん
2016/06/14(火) 07:50:20.51ID:kHZZ/T/q違うよ
インスタンスの参照はただの変数の参照とは意味合いが違う
オブジェクトそのもの(いわゆる属性プロパティ(メンバ変数)や
操作(メンバ関数))を含めた抽象的な意味合いでの参照の意味を持つ
0652デフォルトの名無しさん
2016/06/14(火) 07:55:50.12ID:kHZZ/T/qインスタントの参照をポインタ変数に代入するのはC++でのただの実現手段であって
参照そのものの持つ意味はもっと広い
0653デフォルトの名無しさん
2016/06/14(火) 07:56:42.93ID:kHZZ/T/qインスタンスに訂正
0654デフォルトの名無しさん
2016/06/14(火) 08:26:06.33ID:lt/AyDcf0655デフォルトの名無しさん
2016/06/14(火) 08:33:05.40ID:kHZZ/T/q体験的に納得できることだけど、手続き型(特にC言語)だけに拘っていると
こういった視野は持ち得ないし分からないかも知れないな
プログラム言語の世界をもっと広い目で眺めたほうがいいよ
0656デフォルトの名無しさん
2016/06/14(火) 09:27:38.79ID:okTh9FeH0657デフォルトの名無しさん
2016/06/14(火) 09:42:13.46ID:EcxrViCaプロパティはオブジェクトそのものではないのでは
メソッド含めてのオブジェクトなんだから
0658デフォルトの名無しさん
2016/06/14(火) 10:11:53.40ID:kHZZ/T/qプロパティも言語によって扱いの変わる概念だからね
ただの属性としての意味しか持たない場合もあるし、C#のようにメンバ変数のアクセサとしての意味を
含んだ概念を指す場合もある
一般的には、属性と操作を含むクラスの実体(インスタンス)がオブジェクトという解釈でいいよ
staticなクラスのような実体を持たない例外もあるけど、何にせよ何らかの手段で紐付けをしておかないと
取り扱いができない
その紐づけのための概念が参照であり、特別に参照型変数を用意している言語もあるし、C++のように
クラス型の変数という呼び方をしている言語もある
特にC++はクラス型の変数は一般にポインタで扱うことが多いので、インスタンスの参照とインスタンスへの
ポインタが混同される傾向が強い
0659デフォルトの名無しさん
2016/06/14(火) 10:15:39.69ID:kHZZ/T/q正:(クラスそのものが)実体をもつ
0660デフォルトの名無しさん
2016/06/14(火) 10:19:02.42ID:ib+gOtfn0661デフォルトの名無しさん
2016/06/14(火) 10:22:33.38ID:kHZZ/T/qROMに戻ります
0662デフォルトの名無しさん
2016/06/14(火) 11:57:59.48ID:/RxT5hmiこれを関数で渡せるかは知らん
char c = 'z';
char& r = c;
0663デフォルトの名無しさん
2016/06/14(火) 12:02:32.34ID:c3GxBqr60664デフォルトの名無しさん
2016/06/14(火) 12:12:03.98ID:Jwq6Rh3R> char& r = c;
これは c++ だろ
0665デフォルトの名無しさん
2016/06/14(火) 12:29:49.16ID:40VABfp1俺だw
C99でべらぼーに拡張されたようだったんで
++との境界があいまいだわ
0666デフォルトの名無しさん
2016/06/14(火) 12:40:41.47ID:xg9RKltBそれで区別つかなくなるとかないわ
0667デフォルトの名無しさん
2016/06/14(火) 13:14:48.64ID:40VABfp10668デフォルトの名無しさん
2016/06/14(火) 13:23:55.65ID:lYP0SHiSboolとか、可変長配列とか
0669デフォルトの名無しさん
2016/06/14(火) 13:58:04.76ID:/RxT5hmiいや俺も初めて見たんでびっくりしたんだw
試してない。
0670デフォルトの名無しさん
2016/06/14(火) 14:33:41.44ID:/RxT5hmiC言語に”reference”って用語が定義されてるのか?
0671デフォルトの名無しさん
2016/06/14(火) 17:48:56.60ID:TCIWxICxあるの?そんな状況?
0672デフォルトの名無しさん
2016/06/15(水) 01:40:59.01ID:gZwGLfL5で、結論ね。
厳密な意味ではC言語の関数引数に参照渡しはない。
全て値渡し、これは事実。
だが、ポインタを渡して、そのデリファレンスしたオブジェクトを扱う事を参照渡しと呼んでいる書籍があるのも事実。
意図する主体が違うので、どちらも間違いとは言えないと思っている。
関数の仕組みで考えたら、前者が正しい。
オブジェクト操作のセマンティクスで考えたら、後者が正しい。
0673デフォルトの名無しさん
2016/06/15(水) 13:08:38.09ID:ltaRG/Ox初心者向けの文章なら、書き方にもよるけど別にいいと思う
0674デフォルトの名無しさん
2016/06/15(水) 16:42:56.88ID:X8QJ/yXs0675デフォルトの名無しさん
2016/06/15(水) 16:59:07.95ID:6RueGIQLポインタはただのアドレス
広義のオブジェクトの参照はオブジェクトそのもののエイリアス(別名)のこと
例えば、配列へのポインタは先頭アドレスの位置の情報しか渡らないけど
他の言語で配列の参照といえば、要素数などの情報も含めて全ての情報が渡る
0676デフォルトの名無しさん
2016/06/15(水) 17:11:37.03ID:X8QJ/yXsうーん。
その情報が置かれてるアドレスを渡してるのかもよ?
0677デフォルトの名無しさん
2016/06/15(水) 17:36:40.20ID:6RueGIQL言葉通りに解釈して、値渡しは元の内容をそのまま渡すこと、参照渡しは元の内容のコピーを渡すこと
コピーとオリジナルの関係が参照ということ
コピーなのでもとの情報はすべて持っている
0678デフォルトの名無しさん
2016/06/15(水) 17:41:42.05ID:9eiMbTePランタイムがそれをやってる。
>>677
コピーって言うと語弊がある。インスタンスが増えたわけでは無いから。
0679デフォルトの名無しさん
2016/06/15(水) 17:44:13.52ID:6RueGIQL0680デフォルトの名無しさん
2016/06/15(水) 17:46:38.04ID:6RueGIQLオブジェクト指向のインスタンスの場合、引数の参照渡しはコピーコンストラクタでインスタンスが生成されなかったっけ?
0681デフォルトの名無しさん
2016/06/15(水) 18:15:37.40ID:9eiMbTePそれ何の言語?
普通、参照と言ったらコピーじゃなくエイリアスだろ。
0682デフォルトの名無しさん
2016/06/15(水) 18:21:07.45ID:9eiMbTeP参照はそのまんまリファレンスだよ。コピーじゃ無い。
0683デフォルトの名無しさん
2016/06/15(水) 18:38:49.79ID:EUh3ry3n> 引数の参照渡しはコピーコンストラクタでインスタンスが生成されなかったっけ?
君 >>677 でも(訂正したとは言え)間違えてるし
話がややこしくなるからちゃんと書けないならおとなしく ROM っててくれ
はっきり言って邪魔
0684デフォルトの名無しさん
2016/06/15(水) 18:45:50.85ID:6RueGIQLごめん、また同じ間違いしてた
値渡しでC++の話
情報を渡す=コピーを渡す:値渡し
内容を渡す=別名で渡す:参照渡し
的な意味で捉えていたのが混乱の元だな
うん、コピーとエイリアスは別物だね
0685デフォルトの名無しさん
2016/06/15(水) 18:49:40.36ID:6RueGIQL失礼、とりあえず控えるよ
0686デフォルトの名無しさん
2016/06/15(水) 20:16:28.67ID:fBdcLY2F広いもなにも,ポインタ変数に収まるんだったらポインタ変数と同等の力しかないのであって
0687デフォルトの名無しさん
2016/06/15(水) 20:17:43.93ID:fBdcLY2FC++ では参照変数とポインタ変数は区別されているよ
0688デフォルトの名無しさん
2016/06/15(水) 21:56:48.58ID:50wzyrZYマルチパラダイムって何よ?
0689デフォルトの名無しさん
2016/06/16(木) 06:30:24.37ID:A7tCzxLE使われる「参照」は似て非なるものということでいいのかな?
ポインタ経由の参照は後者の意味で使われており、C++の&varなどの引数としての参照は前者の意味ということ?
0690デフォルトの名無しさん
2016/06/16(木) 06:52:58.22ID:Ug1T/RXDそれであってる
ポインタ経由の参照は値渡しであって参照渡しではない
参照の意味が違う
0691デフォルトの名無しさん
2016/06/16(木) 06:57:03.48ID:ouXjOwReどう違うの?
0692デフォルトの名無しさん
2016/06/16(木) 07:21:37.91ID:cgaXk5xn参照先にアクセスするときに専用の記法を使う必要があるかとか、
参照のために受け渡しされる値に直接アクセスできるかどうかも違う
0693デフォルトの名無しさん
2016/06/16(木) 07:36:08.07ID:Ug1T/RXDうまく伝わるかどうか微妙だけど、たとえ話で説明すると
本の目次から該当ページの内容の情報を見つけることができるようにする仕組みがポインタ経由の参照であり
その本の何ページの何行目の目次を見るように指定することが(ポインタの)値渡し
参照渡しは本ではなくて情報源そのもの(例えばWebなど)のリンク先を指定するといった感じかな
過去レスで誰かが言っていたようにC言語では参照渡しは出来ない
かえって分かりにくかったらごめん、うまく表現できない
0694デフォルトの名無しさん
2016/06/16(木) 08:07:39.14ID:e7Ja7VI3本人がきちんと理解できてないことは聞かないのが本当の優しさ
0695デフォルトの名無しさん
2016/06/16(木) 08:14:48.11ID:e7Ja7VI3おなじだよ
ポインタ経由ガー
って言ってる奴は概念と実装の区別がついてないだけ
C言語でも普通に de-reference operator とか言うし
0696デフォルトの名無しさん
2016/06/16(木) 08:30:21.59ID:Ug1T/RXD確かにその表現が一番しっくり来る
>>689の言う前者は実装上の参照の定義、後者が概念上の参照の定義に近い
0697デフォルトの名無しさん
2016/06/16(木) 08:42:37.67ID:YJ4WCJk50698デフォルトの名無しさん
2016/06/16(木) 08:55:34.26ID:dqT358IUこのスレでもその辺理解できてなくて無茶苦茶書いてる奴いるし
0699デフォルトの名無しさん
2016/06/16(木) 09:04:13.27ID:izAUOKKRかといって操作毎に * をタイプするのはかったるい
0700デフォルトの名無しさん
2016/06/16(木) 09:32:39.15ID:Rn5Y9zAq&iは参照
0701デフォルトの名無しさん
2016/06/16(木) 09:56:32.79ID:dqT358IUそして、そのiがint *iとか宣言されてたりするんだ
0702デフォルトの名無しさん
2016/06/16(木) 10:30:14.23ID:W4kfixme初心者を混乱させる為にわざとやってるんでしょ
0703デフォルトの名無しさん
2016/06/16(木) 11:08:26.53ID:Rn5Y9zAq0704デフォルトの名無しさん
2016/06/16(木) 11:53:46.67ID:vPpNXLWB0705デフォルトの名無しさん
2016/06/16(木) 12:55:07.93ID:e7Ja7VI3それはまた別の話
その辺理解せずに書いてるから混乱する
お前はわざとやってそうだが
0706デフォルトの名無しさん
2016/06/16(木) 13:13:41.76ID:dqT358IU参照の意味をうまく説明出来ないレベルの人は、
アドレス渡しや値渡しとかの言葉を使ったほうが間違え難くて良いと思いませんか?
0707デフォルトの名無しさん
2016/06/16(木) 13:34:58.75ID:rvKKoz0Zそうでないと仮引数と実引数の違いや、ポインタのポインタで混乱するだろう。
0708デフォルトの名無しさん
2016/06/16(木) 13:46:37.77ID:0I01+HHK欠陥を補うためポインタ・アドレス渡しを援用する
0709デフォルトの名無しさん
2016/06/16(木) 13:58:34.23ID:rvKKoz0Z0710デフォルトの名無しさん
2016/06/16(木) 13:59:19.93ID:EMLlAAao0711デフォルトの名無しさん
2016/06/16(木) 14:16:20.09ID:rvKKoz0Zhttp://qiita.com/mdstoy/items/2ef4ada6f88341466783
0712デフォルトの名無しさん
2016/06/16(木) 14:21:02.44ID:dqT358IUいや、各データを配列のような場所に確保しておいて、そのインデックス番号を参照として渡してもいいだろう
その参照を渡される関数の方に、インデックス番号に対応するデータ領域へアクセスするコードが、展開されていればいいのだから
0713デフォルトの名無しさん
2016/06/16(木) 14:34:54.17ID:mYoMtneI実行時にインデックスを展開するのになんのメリットがあるんだ
0714デフォルトの名無しさん
2016/06/16(木) 15:24:25.42ID:918V0kLQ0715デフォルトの名無しさん
2016/06/16(木) 15:40:28.15ID:rvKKoz0Z間接的なアドレス値渡しだね。オブジェクトを生成する時に配列にアドレス値を登録する。
コーディングには生のアドレス値ではなくオブジェクトIDを使う。
GCのコンパクションで有効かもよ。なんか実例あるの?
0716デフォルトの名無しさん
2016/06/16(木) 15:42:10.84ID:QwIHZKf50717デフォルトの名無しさん
2016/06/16(木) 16:05:45.39ID:vPpNXLWB0718デフォルトの名無しさん
2016/06/16(木) 16:45:14.35ID:MwAW5wDd0719デフォルトの名無しさん
2016/06/16(木) 16:56:16.91ID:dqT358IU>>712は配列にアドレス入れる方式を書いたつもりじゃないんだけどな
でも配列にアドレス入れるのもいいね
初期のMacのメモリ管理はインデックスを渡すわけじゃないけどそんな感じの間接参照方式だった
0720デフォルトの名無しさん
2016/06/16(木) 17:11:43.10ID:I3aMRqMECなんて物理層に近いレベルなんだから複雑な実装するだけ無駄なのくらい分かるだろ
高レベル用にはC++やC#あるんだし棲み分けもできてる
0721デフォルトの名無しさん
2016/06/16(木) 17:14:06.71ID:0N7R+m8Lポインタが分からないヤツが増えたみたいだな。
まぁ、その一世代前のヤツらは、C言語から入る人が
増えたから、レジスタがどうこうってのが分からいヤツが
増えたとさらに古い世代のヤツに言われたのだろうけどさ。
0722デフォルトの名無しさん
2016/06/16(木) 17:35:17.45ID:fFpDCV370723デフォルトの名無しさん
2016/06/16(木) 18:14:18.20ID:2rqv/qQq必要になったら覚えりゃいい
0724デフォルトの名無しさん
2016/06/16(木) 19:29:47.18ID:e7Ja7VI3別に大丈夫だと思うけどな
VB みたいな言語で混乱したことないし
0725デフォルトの名無しさん
2016/06/16(木) 19:33:02.86ID:3vx2NTVaC++ は一時オブジェクト作るんだっけか?
0726デフォルトの名無しさん
2016/06/16(木) 19:39:18.80ID:3vx2NTVa0727デフォルトの名無しさん
2016/06/16(木) 19:40:39.06ID:e7Ja7VI3世の中にはアドレス空間がフラットでないプロセッサもあるのでそんなに単純ではないケースもある
例えば 8086 は near / far ポインタがあるのでセグメントセレクタとかを補ったりする必要がある
0728デフォルトの名無しさん
2016/06/16(木) 19:54:30.45ID:e7Ja7VI3VB(A) もコピーを作ってその参照を渡すみたい
VB(A) はサブルーチンの呼び出しを
Foo X
みたいに書くから他の言語のつもりで
Foo(X)
と書いて Foo で変更した X の値が変わりません
って言う人が定期的にでてくる
0729デフォルトの名無しさん
2016/06/16(木) 20:33:24.16ID:Rn5Y9zAq0730デフォルトの名無しさん
2016/06/16(木) 20:49:38.27ID:G6Gqk7Uv参照の間違った使い方は Java/C# 以来の伝統だ,気にするな C++ 流でいけばいい
0731デフォルトの名無しさん
2016/06/16(木) 21:23:04.52ID:Mbmhj90tMicrosoft、C言語を拡張する「Checked C」を開発中
http://news.mynavi.jp/news/2016/06/16/218/
0732デフォルトの名無しさん
2016/06/16(木) 21:37:29.43ID:dqT358IU範囲チェックだけだったらわざわざMSの技術を使おうとは思わんなあ
0733デフォルトの名無しさん
2016/06/16(木) 21:57:33.85ID:E32winSH0734デフォルトの名無しさん
2016/06/16(木) 22:05:50.33ID:QwIHZKf5そんなもん必要だと思う理由を知りたい
0735デフォルトの名無しさん
2016/06/16(木) 22:06:09.44ID:opCg9rRZMSはまた独自拡張でManaged C++やC++/CLIみたいな混乱を生み出すつもりなのか
0736デフォルトの名無しさん
2016/06/16(木) 23:17:21.18ID:qQca/lXt桁が溢れて困らない用途なんてかなり少ないと思うし
言語仕様で簡単に検出出来るようになる方がいいと思うが
0737デフォルトの名無しさん
2016/06/16(木) 23:17:34.13ID:acyUZOOZ0738デフォルトの名無しさん
2016/06/16(木) 23:28:40.01ID:ouXjOwReわざわざげんこ
0739デフォルトの名無しさん
2016/06/16(木) 23:37:32.67ID:M9uu+ifaadd ax,bx
jo on_overflow
見たいな感じか。意義があると思うなら自分でやってみたらどうだろう。
たしか、PL/I にそんなのがあった気がする。
0740デフォルトの名無しさん
2016/06/17(金) 01:23:33.57ID:VJGhAv1N0741デフォルトの名無しさん
2016/06/17(金) 01:24:42.66ID:VJGhAv1N0742デフォルトの名無しさん
2016/06/17(金) 02:15:45.43ID:0NZ3gEEMC言語から脱線しすぎだろ
0743デフォルトの名無しさん
2016/06/17(金) 06:51:52.67ID:TQ7oR46s桁が溢れるかもしれない
なんてプログラムを組む方が珍しいと思うが...
0744デフォルトの名無しさん
2016/06/17(金) 08:01:39.21ID:5d/xTr9o0745デフォルトの名無しさん
2016/06/17(金) 13:59:28.10ID:9JKaIxjw0746デフォルトの名無しさん
2016/06/17(金) 14:06:38.90ID:gSrbzA4F0747739
2016/06/17(金) 14:22:54.01ID:RHkMxXLT#define add_with_overflow_check( a,b) __asm__( \
"add %1,%0\n" \
"jno 1f\n" \
"call on_overflow\n" \
"1:\n" \
: "+r" (a) : "r" (b))
int g;
int foo( int x,int y)
{
add_with_overflow_check( g,y);
add_with_overflow_check( x,y);
return x;
}
0748デフォルトの名無しさん
2016/06/18(土) 18:40:49.83ID:lEAjcf4TC#とかではマーシャラがメモリ配置調整したり、別のアドレスを渡して結果をマネージ側に渡し直したりする可能性があるから、すべての言語が常にアドレスそのまま渡してるというわけではない
0749デフォルトの名無しさん
2016/06/18(土) 18:45:00.56ID:CJN7kKTQそりゃランタイムの話だろ
0750デフォルトの名無しさん
2016/06/18(土) 19:23:04.12ID:Yo6ekyLr機械語レベルの意味分からないなら書き込まないほうがいいよ
0751デフォルトの名無しさん
2016/06/18(土) 20:15:16.71ID:YZGqi88uわかってないのはむしろお前らかと...
0752デフォルトの名無しさん
2016/06/19(日) 00:13:37.25ID:uEp6PgcPスレタイすら分かってない奴が何言ってるんだろう
0753デフォルトの名無しさん
2016/06/19(日) 02:32:15.53ID:vEK8SCye0754デフォルトの名無しさん
2016/06/19(日) 13:09:16.89ID:MSpzJi0y半導体のレベルまで掘り下げるか?
0755デフォルトの名無しさん
2016/06/19(日) 13:24:00.58ID:YBeRGNsMまだやるの
0756デフォルトの名無しさん
2016/06/19(日) 13:48:25.50ID:Pvc+naRU概念の話 ⇒ >>754
なのか
実装の話 ⇒ >>755
なのかをごっちゃにして話すからいつまでも終わらないんだよ
0757デフォルトの名無しさん
2016/06/19(日) 13:56:28.59ID:YBeRGNsM終わらないのは実装を理解してないから。どちらも理解すれば終わる。
この問題は、実装を知らない人が疑問に思うんだよ。
0758デフォルトの名無しさん
2016/06/19(日) 14:03:47.20ID:98VJv+wI構造体を経由するしかない?
※ ポインタと個数を引数にするのは別で
0759デフォルトの名無しさん
2016/06/19(日) 14:30:05.53ID:Pvc+naRU元々(>>614)は概念ぽい話なのに実装の話だけを書く奴(>>615)がしゃしゃりでてくるからおかしくなる
せめて >>617 辺りの説明しろって言うこと
あと >>615 はC言語としては正しいけど、>>709 のように機械語一般にまで範囲を広げると正しくない
って言う指摘をされてる ← 今ここ
0760デフォルトの名無しさん
2016/06/19(日) 14:31:48.43ID:Pvc+naRUグローバル変数
0761デフォルトの名無しさん
2016/06/19(日) 14:42:48.24ID:ao4WLgfX>元々(>>614)は概念ぽい話なのに
>実装の話だけを書く奴(>>615)
概念ぽい,とか実装より,とか関係ないのでは?
そもそも,その概念よりとか実装よりとか,どうして区別する必要があるの?
C にはポインタの値渡ししかない,それだけの話だ
と pascal で鍛えられた人間が言ってみる
0762デフォルトの名無しさん
2016/06/19(日) 14:55:48.88ID:98VJv+wIノーマークじゃったw 確かに大きさも渡るね
0763デフォルトの名無しさん
2016/06/19(日) 15:02:06.32ID:ao4WLgfX実行時に渡っているわけじゃない.コンパイル時に判明しているから sizeof でその値をはめているだけ
0764デフォルトの名無しさん
2016/06/19(日) 15:05:43.91ID:98VJv+wIそれは了解してるよー(実行時ではなくコンパイル時に確定し展開されてる)
0765デフォルトの名無しさん
2016/06/19(日) 15:13:53.83ID:Pvc+naRUせめて >>617 ぐらいは理解してからレスしてくれよ...
0766デフォルトの名無しさん
2016/06/19(日) 15:17:28.03ID:Pvc+naRUC言語 interpreter も知らないの?
0767763
2016/06/19(日) 15:27:19.51ID:ao4WLgfXインタプリタでもコンパイラでもおんなじだよ
sizeof はあらかじめ分かっている定数をはめているだけだよ,引数に乗っているのは最初のアドレスだけだよね
>>765
おう,ごめんな,>>617 の昔はよく読んでなかったよ
でもね,「参照渡し」って言い方はきらいなんだ,Java の参照渡しか,C++/C# の参照か,一々聞かないといけないね,混乱している人が大概だからね
0768デフォルトの名無しさん
2016/06/19(日) 15:33:25.17ID:YBeRGNsMもう絶対使うなと言っても良いくらいだ。
0769デフォルトの名無しさん
2016/06/19(日) 15:42:40.84ID:X+E3gNs8配列長を省略したextern宣言しか見えないと、ダメじゃね?
と、隅をつついてみる。
0770デフォルトの名無しさん
2016/06/19(日) 15:59:26.63ID:AYQ3uvUE指摘されてるのは
> コンパイル時に判明しているから
の部分でしょ
>>709 もそうだけど自分の狭い知識で語られても困るってこと
0771デフォルトの名無しさん
2016/06/19(日) 16:20:13.69ID:yIAex3DWコンパイル時に判明してるからと書かれたところで
「だから何?」って話
0772デフォルトの名無しさん
2016/06/19(日) 16:29:19.22ID:3qHPqn4y0773デフォルトの名無しさん
2016/06/19(日) 16:44:47.48ID:ao4WLgfXC/C++ をやるのには十分なんだが,>>763 >>767 のどういう点が「狭い」と感じられたのか,記述してほしい
0774デフォルトの名無しさん
2016/06/19(日) 16:45:22.80ID:ao4WLgfXsizeof で大きさが取れるのは,コンパイル時に判明しているからだよね
0775デフォルトの名無しさん
2016/06/19(日) 16:59:24.80ID:Pvc+naRUコンパイラしか想定してない
って理解できなかったの?
0776デフォルトの名無しさん
2016/06/19(日) 17:03:05.96ID:3qHPqn4yさっぱりわからんのだけど、例えばインタープリタを想定すると
話はどう変わるの?
0777デフォルトの名無しさん
2016/06/19(日) 17:13:37.51ID:Pvc+naRUInterpreter には「コンパイル時」何て言うものはないんだが w
0778デフォルトの名無しさん
2016/06/19(日) 17:20:19.27ID:ao4WLgfXコンパイラでもインタプリタでも,関数に引数として配列名を渡したからといって,配列の大きさまでは引数では渡らないのは一緒でしょう?
https://en.wikipedia.org/wiki/CINT むちゃなつかしい
0779デフォルトの名無しさん
2016/06/19(日) 17:23:24.18ID:98VJv+wI0780デフォルトの名無しさん
2016/06/19(日) 17:28:32.68ID:ao4WLgfX0781デフォルトの名無しさん
2016/06/19(日) 17:31:20.87ID:3qHPqn4y凄くくだらない所にこだわってたんだね
まともなインタープリタで、実行前にコンパイルしないものなんて
お目に掛かった事無いけど
0782デフォルトの名無しさん
2016/06/19(日) 17:37:11.68ID:Pvc+naRUだからそんな指摘してないところのこと言われても困るってば
0783デフォルトの名無しさん
2016/06/19(日) 17:38:42.70ID:Pvc+naRUそう言うのを視野が狭いって言われてるんだけど...
0784デフォルトの名無しさん
2016/06/19(日) 17:48:38.90ID:ao4WLgfX単に「インタプリタが存在する」ことを,言いたかっただけなんだね‥でもインタプリタでもコンパイラでもこの話は一緒なんだよ‥
昔むかし,fj.source に CINT というインタプリタが投稿されたことがありまして,
そのときは CERN ではなくて別の所属だったんだが,おっと忘れてしまった,日本版 wikipedia に項目がないのは実にざんねんだ
>>781
コンパイルの必要なインタプリタですかね‥
0785デフォルトの名無しさん
2016/06/19(日) 17:51:03.05ID:3qHPqn4y視野が狭いのはそっちだろ
コンパイルという名前のプロセスが無いという
実害の無い点にいちいち躓いてるんだから
インタープリタだろうが、sizeof演算子の演算が
静的なものであるという点は何も変わらないだろ
0786デフォルトの名無しさん
2016/06/19(日) 17:52:43.70ID:ao4WLgfXおいおい,追い討ちは可哀想だ
0787デフォルトの名無しさん
2016/06/19(日) 17:57:40.90ID:mhAMecRAだから静的じゃない実装もあるって話なんだが...
0788デフォルトの名無しさん
2016/06/19(日) 18:01:19.21ID:ao4WLgfXインタプリタだったら静的ではなくなるのか?
ありえないね
あるというのなら実例を出せ
0789デフォルトの名無しさん
2016/06/19(日) 18:08:16.26ID:3qHPqn4yそれはもはやCの処理系と呼べない
0790デフォルトの名無しさん
2016/06/19(日) 18:27:15.82ID:YBeRGNsMvoid func(int n)
{
char x[n];
printf("%lu", sizeof(x));
}
0791デフォルトの名無しさん
2016/06/19(日) 18:48:15.22ID:ao4WLgfXたぶんそれはC11
0792デフォルトの名無しさん
2016/06/19(日) 18:56:08.24ID:/rk5wqNmVLAはC99からやで
0793デフォルトの名無しさん
2016/06/19(日) 19:14:36.18ID:1KHjmJ1T0794デフォルトの名無しさん
2016/06/19(日) 19:39:35.59ID:Pvc+naRU規格でコンパイル時に決定しないといけないという訳じゃない
0795デフォルトの名無しさん
2016/06/19(日) 21:06:32.11ID:HFF9oBK3コンパイル時に決定できる値になるように規格でわざわざ規定してるのに、
コンパイル時に決定しない理由があるのか?
0796デフォルトの名無しさん
2016/06/19(日) 21:15:29.93ID:Pvc+naRU頭悪いの?
0797デフォルトの名無しさん
2016/06/19(日) 21:22:36.70ID:HFF9oBK3頭が悪いから、教えてくれ。
コンパイル時にsizeofの値をわざわざ決定しない理由ってなに?
0798デフォルトの名無しさん
2016/06/19(日) 22:27:28.88ID:MSpzJi0y0799デフォルトの名無しさん
2016/06/19(日) 22:37:01.23ID:AK/S93IS嘘つけ
規格で可変長配列でなければ(実行時)評価せず定数になるって書いてあるわ
0800デフォルトの名無しさん
2016/06/20(月) 06:00:11.57ID:zgoYTeGr事前評価も事後評価もない
sizeof演算子も同じこと
インタプリタとかコンパイラとかの処理系の実装の話を持ち出すから話がややこしくなる
参照のときと同じで、概念と実装をごっちゃにしている奴が多すぎる
0801デフォルトの名無しさん
2016/06/20(月) 06:23:18.39ID:zgoYTeGr確かANSI C(C90だっけ?)だと定数しか使えなかったはず
最近はC++のように変数でも使用可能になっているかどうかは詳しい人に任せます
0802デフォルトの名無しさん
2016/06/20(月) 06:23:46.69ID:jq4xH/GX実行時評価しちゃダメと言うなら
どこに書いてあるのか教えてくれ
0803デフォルトの名無しさん
2016/06/20(月) 06:24:27.87ID:zgoYTeGr0804デフォルトの名無しさん
2016/06/20(月) 06:37:45.26ID:ZolMwWER添字演算子に変数使えなかったらどうやって配列の要素にアクセスすんだよ…というのは多分宣言の事を言ってるんだろうから置いといて、
配列の宣言に変数を使えるのはC言語だけ。上に出てるけどVLAという機能でC++には無い
0805デフォルトの名無しさん
2016/06/20(月) 06:50:05.35ID:uu/v+W1l簡単にスタッコオバーフロウしそうなコードだな
0806デフォルトの名無しさん
2016/06/20(月) 06:50:36.27ID:usQ28XEZ宣言のなかで使われる[]は演算子ではないよ
まあ、言いたいことはわかるけど
さらに言うと配列の宣言時に変数が利用できてもそれは可変長配列とは言わない
実行時に(変数で)動的に配列長が変更できるものが可変長配列
C++でも言語仕様そのものとしては可変長配列は扱えない
vectorクラスなどの標準クラスライブラリを利用するか、C言語のようにmalloc/freeで
ポインタ経由で扱うしかない
0807デフォルトの名無しさん
2016/06/20(月) 06:56:31.06ID:usQ28XEZ0808デフォルトの名無しさん
2016/06/20(月) 08:20:54.33ID:Nxz2d29Bほんと?
確かc++11から仕様になった気がするが…
もう出勤電車内だからすぐには調べられないけど。
0809デフォルトの名無しさん
2016/06/20(月) 08:24:06.00ID:KuHDgHp4§6.5.3.4
2.
The sizeof operator yields the size (in bytes) of its operand, which may be an
expression or the parenthesized name of a type. The size is determined from the type of
the operand. The result is an integer. If the type of the operand is a variable length array
type, the operand is evaluated; otherwise, the operand is not evaluated and the result is an
integer constant.
evaluateが実行時だとは明言されてないけど
そうじゃないと評価してはいけないということになってしまうから実行時評価がダメってことだろ
整数定数になるとも書いてあるし
0810デフォルトの名無しさん
2016/06/20(月) 08:32:02.75ID:ZolMwWERなってません
0811デフォルトの名無しさん
2016/06/20(月) 09:25:58.23ID:usQ28XEZC言語ではC90では無理だけどC99であれば使える
ただどちらも宣言時のサイズ指定に変数が使えるだけであって、実行時のサイズの動的変更は出来ない
0812デフォルトの名無しさん
2016/06/20(月) 09:39:36.17ID:ZolMwWERなんでこれだけ標準ではないと言ってても調べもせずにそんな事いえるの?
0813デフォルトの名無しさん
2016/06/20(月) 09:55:39.62ID:KuHDgHp4c11ならいくつもでるけど
0814デフォルトの名無しさん
2016/06/20(月) 10:08:53.26ID:usQ28XEZhttps://en.wikipedia.org/wiki/Variable-length_array
0815デフォルトの名無しさん
2016/06/20(月) 10:11:34.42ID:ZolMwWER0816デフォルトの名無しさん
2016/06/20(月) 10:11:44.95ID:yf+QHXB80817デフォルトの名無しさん
2016/06/20(月) 10:13:10.21ID:KuHDgHp4えっ、どこにc++03でも同じって書いてあるんですかね
0818デフォルトの名無しさん
2016/06/20(月) 10:19:18.65ID:usQ28XEZ0819デフォルトの名無しさん
2016/06/20(月) 10:32:36.98ID:ZolMwWERMSVC
0820デフォルトの名無しさん
2016/06/20(月) 10:45:25.73ID:usQ28XEZhttps://msdn.microsoft.com/en-us/library/zb1574zs.aspx
>Variable length arrays are not currently supported in Visual C++.
0821デフォルトの名無しさん
2016/06/20(月) 10:47:39.38ID:ZolMwWER規格にねえつってんだろうが
日本語読めねえの?
0822デフォルトの名無しさん
2016/06/20(月) 10:53:44.69ID:WkXFvEEFつかmsvcが準拠してるのはC89?
0823デフォルトの名無しさん
2016/06/20(月) 10:58:41.00ID:KuHDgHp4個別のコンパイラの話してどうすんだよ
c++03っていうのはc++03の規格の意味であって
あらゆるc++03コンパイラを名乗る者の中で一番多い実装がc++03ではないの
そこら辺分かってない人わりといるよな
0824デフォルトの名無しさん
2016/06/20(月) 10:58:55.23ID:ZolMwWER今はC++の標準かどうかについて話してんの
g++やclang++でも -pedantic 付けると警告でる 厳格モードにするとなんちゃってC++処理系だとでもいうんだろうか?
まあスレ違いだし話通じないしもう黙るわ
0825デフォルトの名無しさん
2016/06/20(月) 11:03:22.54ID:WkXFvEEF0826デフォルトの名無しさん
2016/06/20(月) 14:12:18.68ID:p6+rLIxNコンピュータのメモリ上のデータは全て値だから当然だろ。
0827デフォルトの名無しさん
2016/06/20(月) 14:14:10.68ID:p6+rLIxN手抜きだろ
0828デフォルトの名無しさん
2016/06/20(月) 14:40:44.49ID:o/Q8QvES実行時にどうやって決定するんだろうね
0829デフォルトの名無しさん
2016/06/20(月) 15:47:38.33ID:y3bGvat/それともC++?
0830デフォルトの名無しさん
2016/06/20(月) 15:48:50.28ID:7O0ObdXP違う話題をしたがる人がいるみたい
0831デフォルトの名無しさん
2016/06/20(月) 17:40:16.12ID:bEvQuIcU0832デフォルトの名無しさん
2016/06/20(月) 19:31:58.70ID:qR6j9JAZC++?
0833デフォルトの名無しさん
2016/06/20(月) 20:37:31.93ID:FhfmjeRD0834デフォルトの名無しさん
2016/06/20(月) 20:51:31.85ID:aMWLLxK3追跡する気が全く起きないのがC++
0835デフォルトの名無しさん
2016/06/21(火) 12:46:36.31ID:ScjYRl6x2 (sizeof short)
4 (sizeof int)
8 (sizeof long)
8 (sizeof long long)
4 (sizeof float)
8 (sizeof double)
16 (sizeof long double)
8 (sizeof void *)
1 (sizeof int_least8_t)
2 (sizeof int_least16_t)
4 (sizeof int_least32_t)
8 (sizeof int_least64_t)
1 (sizeof int_fast8_t)
8 (sizeof int_fast16_t)
8 (sizeof int_fast32_t)
8 (sizeof int_fast64_t)
intが最速の型というのは迷信
int_fast8_tはchar=1byteの影響なのか最速ではない(他の3つを見る限り)
という解釈で合ってる?環境はlinux 64bit + clang 3.8.0
0836デフォルトの名無しさん
2016/06/21(火) 13:44:31.02ID:1EIBrQuVレジスタサイズに合わせたら必ず最速になるというものでもない
0837デフォルトの名無しさん
2016/06/21(火) 14:35:10.28ID:ScjYRl6x0838デフォルトの名無しさん
2016/06/21(火) 14:43:31.44ID:KqGcyocS0839デフォルトの名無しさん
2016/06/21(火) 14:46:02.04ID:vVcY9+Oqfast付きが最速だなんて誰が言った?
>>836
8ビットと64ビットでペナルティの違う環境とかいまどきあるのか?
0840デフォルトの名無しさん
2016/06/21(火) 14:46:57.26ID:1Aiu31quその出力通りだとするとその環境の最速は8bitで次に速いのが64bitって事だと思うけど
0841デフォルトの名無しさん
2016/06/21(火) 15:09:46.21ID:ScjYRl6xC99の7.18を抜粋
- 少なくとも指定された幅をもつ最速整数型
(これらの型の幾つかは、同じ型を表してもよい)
実際ヘッダを見ると
typedef signed char int_fast8_t;
#if __WORDSIZE == 64
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
#else
typedef int int_fast16_t;
typedef int int_fast32_t;
__extension__
typedef long long int int_fast64_t;
#endif
となっていて既存の何らかの型を指していることがわかる
0842デフォルトの名無しさん
2016/06/21(火) 15:46:57.65ID:vVcY9+Oq脚注216読んだ?
0843デフォルトの名無しさん
2016/06/21(火) 15:53:37.43ID:ScjYRl6xleast系とfast系で異なる型を選んでいるのだから根拠があるってことでしょ
0844デフォルトの名無しさん
2016/06/21(火) 16:00:23.13ID:vVcY9+Oqコンパイラ設計者の勘も根拠に入れるならね
0845デフォルトの名無しさん
2016/06/21(火) 22:38:36.75ID:qCRCAI2Yされてたことあった
というか
それがC言語の規格じゃねーの?
0846デフォルトの名無しさん
2016/06/22(水) 09:57:39.86ID:es+zuR1i0847デフォルトの名無しさん
2016/06/22(水) 10:12:20.28ID:t1NluOvj>>839
> 8ビットと64ビットでペナルティの違う環境とかいまどきあるのか?
でっかい配列にアクセスするときなんかじゃ違うだろ
0848デフォルトの名無しさん
2016/06/22(水) 11:10:19.06ID:WHe3DbmRえー、配列まで考えたらleastが最速じゃん
0849デフォルトの名無しさん
2016/06/22(水) 11:16:47.14ID:53iVaND1ってエラーが解決できなくて詰まってる…
0850デフォルトの名無しさん
2016/06/22(水) 11:26:35.37ID:t1NluOvj「ペナルティ」って限定しているんだから、フツー考えるのは配列なんかじゃないのか
キャッシュ関係以外であまりペナルティって言葉使わないだろ
0851デフォルトの名無しさん
2016/06/22(水) 11:28:39.08ID:t1NluOvjエスパーしてみよう
C++, C 混在か?
0852デフォルトの名無しさん
2016/06/22(水) 11:35:33.25ID:cxBIgtwnscanf(%d", pt);
scanf(%d", *pt);
上の書き方が正しいんだけど、下の「*」が付かないのはなんで?
0853デフォルトの名無しさん
2016/06/22(水) 11:53:52.19ID:WHe3DbmRscanfが格納する先をアドレス(ポインタ)で教えてやる必要があるから
0854デフォルトの名無しさん
2016/06/22(水) 11:56:23.49ID:tA6VaAaS・「na」と表記すれば「naの内容」、「&na」と表記すれば「naの場所」になる
・int *pt = &na;でptには「naの場所」が記憶される
・scanf()のパラメータ%dは、指定された「場所」に入力された数字を数値化して書き込む
・「pt」と表記すれば「ptの内容」、「&pt」と表記すれば「ptの場所」になる
・つまりscanf()に渡すべきなのは「naの場所」すなわち「ptの内容」にすべき
・scanf()呼び出しで「pt」の代わりに直接「&na」と書いてもよい
本題
・「*pt」と書くとアドレス解決をした結果、すなわち「naの内容」がscanf()に「場所」として渡ってしまうため、意図しない場所のメモリが書き換えられて誤動作する
0855デフォルトの名無しさん
2016/06/22(水) 12:02:22.96ID:NlKUB6fm0856デフォルトの名無しさん
2016/06/22(水) 12:49:45.24ID:WHe3DbmR*ptがintだと宣言しているのだから一貫している
0857デフォルトの名無しさん
2016/06/22(水) 13:04:29.49ID:sEqYA8cS初心者が必ずハマるのが
・使っているライブラリを指定し忘れてるか名前・場所指定が間違ってるか
・新しく作ったソースをプロジェクトに入れてないか
よくあるのが
・「環境変数や設定を書き換えろ」の説明書きを見落とし/無視してる
0858デフォルトの名無しさん
2016/06/22(水) 13:30:22.89ID:PuXIjiSnint *pt = &na;
は
int *pt;
pt = &na;
宣言のときの*はこれはポインタ変数ですよ、の*
式中で使うときは、その変数の名前で使う。
式中で*がついているときは、参照先の中身。
>>855 言ってるとおり、*に二重の意味があるので初学者は混乱する。
0859デフォルトの名無しさん
2016/06/22(水) 13:42:38.14ID:pxlM+xuZcの発案者がどれだけエラい学者さんだろうが
これは愚かな決め事だったとしか言いようがない
@とか<-とかintptr_tとかあったはず
0860デフォルトの名無しさん
2016/06/22(水) 13:56:30.99ID:3jrXtnQ00861デフォルトの名無しさん
2016/06/22(水) 14:35:19.45ID:tA6VaAaS代替トークンとかあったし
ほとんどの奴は<% %>が{ }の代用になるとか覚えてないだろ
0862デフォルトの名無しさん
2016/06/22(水) 14:39:44.36ID:U6GwwKeZ0863デフォルトの名無しさん
2016/06/22(水) 15:00:20.34ID:DRbO5VgTそういうことか
ポインタの何がわかりにくいのかさっぱりわからなかったんだ
0864デフォルトの名無しさん
2016/06/22(水) 15:08:48.10ID:tA6VaAaS最初見た時何の冗談かと思ったが
0865デフォルトの名無しさん
2016/06/22(水) 18:51:46.90ID:7XAOBQ6z> ほとんどの奴は<% %>が{ }の代用になるとか覚えてないだろ
てか、知らんかった
トライグラフは文字列まで変えてくれるから一度はまって ファ? ってなったわ w
0866デフォルトの名無しさん
2016/06/22(水) 19:49:06.66ID:S4ISOPGK0867デフォルトの名無しさん
2016/06/22(水) 20:29:25.46ID:pxlM+xuZ古代人のための開発環境は既に腐るほどあるわけで最新の規格で扱わなくても保守で困ることはあり得ない
そして過去の環境用に"これから新規開発する少数の変人"のために遺物を残しておくのは不利益の方が多い
0868デフォルトの名無しさん
2016/06/22(水) 20:50:12.11ID:dtkzZf/tGCCもVCもデフォルトではトライグラフ無効だし。
ちなみにC++はC++17で削除予定。Cの規格は追っかけてないけど追従すると思うよ。
0869デフォルトの名無しさん
2016/06/22(水) 21:21:35.14ID:pxlM+xuZ符号修飾(signed unsigned)しない場合のデフォルトを符号有りにした理由は何なのだろう
そもそも正の値より負の値を扱う計算のほうが一般的に珍しくね?と思った
例えば10-5と10+(-5)は同じ結果を得るけど後者は加算器のみで可能とかそういう話かな
0870デフォルトの名無しさん
2016/06/22(水) 21:44:18.74ID:X+fwM1CQunsigned int は、intと比較できない
for()で警告が出る
0871デフォルトの名無しさん
2016/06/22(水) 21:45:12.70ID:X+fwM1CQ0872デフォルトの名無しさん
2016/06/22(水) 22:09:22.60ID:sEqYA8cS0873デフォルトの名無しさん
2016/06/22(水) 22:29:03.25ID:pxlM+xuZ「デフォルトをunsignedと決めた場合」にもそれらの問題は起きるの?
同じタイミングで決めることなんだからunsigned同士なら警告いらないでしょ
>>872
ポインタも配列の要素数も負の値を取らないのにintをsignedにしちゃったもんだから
何も考えずに使う人が多くてsize_tとか作らなきゃいけなくなったんじゃないかと思ってさ
0874デフォルトの名無しさん
2016/06/22(水) 22:46:24.05ID:hUvfpcAH0875デフォルトの名無しさん
2016/06/22(水) 22:54:28.38ID:cYYCz91d整数型なんて本来signedだけでいいはずだしな
0876デフォルトの名無しさん
2016/06/22(水) 23:12:26.36ID:pGQ5Vs/Rデフォルトで符号有りが妥当な考えだと思うけどな
0877デフォルトの名無しさん
2016/06/22(水) 23:50:20.87ID:Qv152JkA加算の計算コストが一番安いから
0878デフォルトの名無しさん
2016/06/23(木) 00:03:27.53ID:bf4RaDco0879デフォルトの名無しさん
2016/06/23(木) 00:09:27.13ID:zQLdlEzoMS-DOSが動くPC-9801と、MS-DOSで動作するCコンパイラを買え。
毎日の食事は卵かけご飯で決まり。
0880デフォルトの名無しさん
2016/06/23(木) 00:19:41.35ID:tS35hTSkラズパイで
0881デフォルトの名無しさん
2016/06/23(木) 00:19:54.21ID:Izcr7CYqてか手元にあるな。Anex86 とか。w
0882デフォルトの名無しさん
2016/06/23(木) 00:29:16.33ID:zQLdlEzo0883デフォルトの名無しさん
2016/06/23(木) 00:40:21.23ID:zQLdlEzo実機持ってるなら貧乏ちゃう
0884デフォルトの名無しさん
2016/06/23(木) 00:41:19.32ID:zQLdlEzo0885デフォルトの名無しさん
2016/06/23(木) 00:57:51.20ID:QS3nj8980886デフォルトの名無しさん
2016/06/23(木) 01:23:16.88ID:EI7DtIWpDigital Mars C/C++ Compiler Version 8.57 (3662658 bytes) (NEW!)
Contains:
Win32 console versions of the tools
C and C++ compilers
http://www.digitalmars.com/download/freecompiler.html
バージョンは、8.52, 8.53, 8.57
どれがいいのかわからん
0887デフォルトの名無しさん
2016/06/23(木) 01:25:51.66ID:EI7DtIWpCode::Blocks 16.01 is here!
Written by MortenMacFly
Thursday, 28 January 2016 10:21
Code::Blocks
http://www.codeblocks.org/
0888デフォルトの名無しさん
2016/06/23(木) 05:57:26.88ID:woen2Xgdジャンクノート買ってLinuxでも入れるのが安上がりかな。
仮想マシンを使えるなら追加投資なしでいけるのかもしれん。
富豪的プログラミングの反対の意味で貧乏ってことなら
MS-DOSが動く環境を用意してLSI-Cの試食版じゃないかな。
0889デフォルトの名無しさん
2016/06/23(木) 09:15:39.13ID:B9t9g5hk0890デフォルトの名無しさん
2016/06/23(木) 09:17:21.14ID:ja5rLTYk0891デフォルトの名無しさん
2016/06/23(木) 09:51:16.87ID:B9t9g5hk0892デフォルトの名無しさん
2016/06/23(木) 10:24:23.38ID:ZQfpp6dv10年以上前に終わってるツール勧めるな
0893デフォルトの名無しさん
2016/06/23(木) 10:26:49.93ID:ZQfpp6dvそりゃベジタリアンの間違いだろ
0894デフォルトの名無しさん
2016/06/23(木) 12:50:41.20ID:woen2Xgd単にメモリやらCPU速度をふんだんに使うこと、じゃないのね。
元々はユーザインターフェースに関する提言だったのか。
わざと利用可能な容量を制限する環境を作って省メモリを強要しても、
富豪的プログラミングの反対としての貧乏プログラミングにはならないな。
貧乏くさい(非力な)環境ということに訂正させてくれ。
よりリソースの制限を厳しくするならPICボードとかになるのかも知れんが。
0895デフォルトの名無しさん
2016/06/23(木) 13:39:52.13ID:h9AvRner0896デフォルトの名無しさん
2016/06/23(木) 15:32:50.69ID:tLxppfzL最近のポケコンはCコンパイラ動くのか?
0897デフォルトの名無しさん
2016/06/23(木) 16:31:51.23ID:woen2Xgd現行機種ではないかも。あとインタープリタ方式だったかも知れぬ。
0898デフォルトの名無しさん
2016/06/23(木) 17:07:27.02ID:bDeXs6rpビットフィールド駆使したメモリマネージャ書いて数KBのメモリで全てやりくりするとか
考え方の問題だから
0899デフォルトの名無しさん
2016/06/23(木) 19:00:04.78ID:GLhtmsq7あー、買ったけど開封してないや。
x86 の tinymodelで作ればいいんじゃないかな?
0900デフォルトの名無しさん
2016/06/23(木) 22:40:16.82ID:xBkC1ONT節約のためにはどんなに手間がかかってもいいみたいな。
0901デフォルトの名無しさん
2016/06/24(金) 06:18:53.90ID:N/UhjoM3ポケコンなんて高い物、貧乏人は買えない。
0902デフォルトの名無しさん
2016/06/24(金) 07:04:47.89ID:fBO9F9sDポケコンなめんな
PC-1501 フルセット揃えたら 10万越えたし
0903デフォルトの名無しさん
2016/06/24(金) 09:42:10.08ID:B5CtlbEH0904デフォルトの名無しさん
2016/06/24(金) 10:02:57.16ID:k6zNHW440905デフォルトの名無しさん
2016/06/24(金) 12:41:58.93ID:5w3PkobHとうとう >>903 もボケはじめたのか...
0906デフォルトの名無しさん
2016/06/24(金) 21:12:35.00ID:FIkQEcYv0907デフォルトの名無しさん
2016/06/24(金) 21:25:18.93ID:pDNM0BDJ0908デフォルトの名無しさん
2016/06/24(金) 22:11:47.68ID:5w3PkobHHP-35 かな
http://www.dentaku-museum.com/calc/calc/51-hp/hp/hp.html
0909デフォルトの名無しさん
2016/06/24(金) 22:28:22.83ID:pDNM0BDJ少なくとも表示装置は液晶だったから
そこまで古くはないけど メーカーはHPだわw
0910デフォルトの名無しさん
2016/06/24(金) 23:01:32.62ID:maODpz5k逆ポーランドの関数電卓って時点でhpしか頭に浮かばねぇ
0911デフォルトの名無しさん
2016/06/25(土) 06:04:47.44ID:kSDNwhEx…C言語からえらく離れてしまったな。
結局 >>878 の言う「貧乏プログラミング」の環境についての質問は
解決したのだろうか?
0912デフォルトの名無しさん
2016/06/25(土) 07:12:29.02ID:T6w8sXCU実行環境がビンボー
前者なら中古のノーパソにLinuxでも入れとけ
後者ならチューリングマシンでも用意しろ
0913デフォルトの名無しさん
2016/06/25(土) 07:38:50.70ID:e7YY+pe40914デフォルトの名無しさん
2016/06/25(土) 12:22:41.29ID:/ILuWvEE0915デフォルトの名無しさん
2016/06/25(土) 12:32:01.18ID:EXxqgeVQ0916デフォルトの名無しさん
2016/06/25(土) 15:23:17.36ID:kSDNwhEx0917デフォルトの名無しさん
2016/06/25(土) 16:18:02.52ID:/ILuWvEEint bar(const size_t size) {
...
}
int foo(void) {
bar(SIZE);
}
こういうコード見かけたんだけど一般的なのかしら
0918片山博文MZ ◆T6xkBnTXz7B0
2016/06/25(土) 16:22:19.60ID:IGrWHBepint bar(const size_t size)
constは要らないな
int bar(size_t size)
0919デフォルトの名無しさん
2016/06/25(土) 16:23:00.67ID:XRYsMsxXbar は可変で設計
foo で利用する際に大きさが決まっている (が bazで利用するときは異なる大きさかもしれない)
0920デフォルトの名無しさん
2016/06/25(土) 17:38:07.79ID:kSDNwhEx引数sizeをconstで宣言してるのは、
関数bar内ではsizeの値を決して変更しないという意図を表明してるわけで、
かなり用心深い書き方、なのかな。
他人(未来の自分も含む)に読んでもらうソースでは親切と言えるかも。
0921デフォルトの名無しさん
2016/06/26(日) 01:04:02.63ID:0MBh4AdF変なところで親切機能あるよね。
使うのめんどいけど。
0922デフォルトの名無しさん
2016/06/26(日) 01:22:16.20ID:Tc6QhS1Lどこぞのコーディング規約でそういうのがあったような。。
「変更しないパラメータ変数には const つけろ」って。
0923デフォルトの名無しさん
2016/06/26(日) 01:40:24.84ID:bJEUyoju関数呼び出す側からすると意図がわからずで(どっちにしろ効果ないんだし)
関数を実装する側の立場の思考なんやね
0924デフォルトの名無しさん
2016/06/26(日) 01:59:07.61ID:xVzQNhHDコンパイラ「おっ変えてやがる警告だしとこ」
0925デフォルトの名無しさん
2016/06/26(日) 02:19:49.93ID:IqnUBT+vヘッダに書かれる時の宣言時はconstなしで実装するときはconstありで書ける
//a.h
void f(int a);
//a.c
void f(const int a){
}
って感じで
0926デフォルトの名無しさん
2016/06/26(日) 02:33:48.29ID:bJEUyojua.c で a.h include すると文句いわれないっけ?
って通るのか。 これはしらんかった
http://ideone.com/mFWvS8
0927デフォルトの名無しさん
2016/06/26(日) 02:38:26.78ID:IqnUBT+v規格でも保証されてるはず。
Cより型に厳しいC++でもちゃんと通るコードだよ
0928デフォルトの名無しさん
2016/06/26(日) 02:52:20.82ID:VEieeoHdレア情報ゲットだぜ、さんきゅ
0929デフォルトの名無しさん
2016/06/26(日) 02:53:19.19ID:TQjwgA3Hconst char***
char ***
char const***
char *const**
char const*const**
char **const*
char const**const*
char *const*const*
char const*const*const*
0930デフォルトの名無しさん
2016/06/26(日) 03:28:44.38ID:IqnUBT+vそんな何気ない言葉でも嬉しいもんだぜ
こちらこそ さんきゅ
>>929
もぅマヂ無理。そんなこぉどみっけたらリファクタリングしょ…
0931デフォルトの名無しさん
2016/06/26(日) 07:02:55.20ID:YvCX8H4W値が渡されるだけだからな。
const つけたら、関数内で値変えられないだけ。
0932デフォルトの名無しさん
2016/06/26(日) 09:56:23.93ID:M7uis8D6値を変えないことをcallerに明示することで安心して使えるようになるのが大きい
あとコンパイラの最適化の足しになったかも
0933デフォルトの名無しさん
2016/06/26(日) 10:03:50.14ID:u47rMBKfそういう話じゃないから
0934デフォルトの名無しさん
2016/06/26(日) 10:33:08.61ID:hBvFQk6r知ったかのアホかよ w
const なんてあってもなくても caller 側の値は変わらんぞ
0935デフォルトの名無しさん
2016/06/26(日) 10:36:14.41ID:9oHVgWHL0936デフォルトの名無しさん
2016/06/26(日) 11:10:03.83ID:hP2dj58L0937デフォルトの名無しさん
2016/06/26(日) 11:42:52.24ID:M7uis8D6>>925 を勘違いしてた
0938デフォルトの名無しさん
2016/06/26(日) 17:57:46.49ID:qL6o93b40939デフォルトの名無しさん
2016/06/26(日) 23:12:31.00ID:BEfwMto/全部
0940デフォルトの名無しさん
2016/06/27(月) 05:37:02.71ID:+UTSdzaCpthreadで各スレッドにタイムアウトを設けたいです。
できますか?
0941デフォルトの名無しさん
2016/06/27(月) 09:24:17.37ID:k6+YPkiSまだあるぞ
char const*const*const*const a;
0942デフォルトの名無しさん
2016/06/27(月) 09:51:55.14ID:E1I14SZRタイムアウトできるようにスレッド関数の内部を実装すれば、できます
0943デフォルトの名無しさん
2016/06/27(月) 11:02:53.96ID:4WbwOowj後付けで申し訳ありませんがタイムアウトは各スレッド内でのalarmのようなものがほしいです。
しかし複数のスレッドが呼び出した場合混乱することを懸念しています。
つまりalarmの代替が必要なのですが上手い方法はありませんか?
0944デフォルトの名無しさん
2016/06/27(月) 12:52:35.49ID:MU976MxCalarmのようながシグナルみたいに強制的に外から割り込むイメージだとすると
pthreadと合わない。基本的には自らタイムアウトするように作り込む必要がある
例えばreadで長時間ブロックすることを防ぎたいなら直前にseletやpollをして
タイムアウト時間経過の前にデータが来たか判定する
0945デフォルトの名無しさん
2016/06/27(月) 20:47:01.77ID:E1I14SZR1つの実装方法として、タイマー割込み発生用のサーバスレッドを自作し、
そのスレッドから、各スレッドのシグナル処理関数(シグナルハンドラ)をCALLする、
という方法があります。スレッドを区別するため、スレッドユニークな何らかの値
(スレッド固有のデータ領域を示すポインタなど)を引数として追加しておくといいでしょう。
簡単に言えば、シグナル処理をOSではなく、自作のスレッドにやらせる、ということですね。
ただし、排他処理には十分に注意する必要があるなど、かなり複雑な実装となりますので、
スレッドのタイムアウト処理のシンプルな実装方法としては、>>944 の方法が
推奨されると思われます。
C言語の話からは微妙に外れますので、マルチスレッドプログラミング相談室スレの方が、
いろいろな意見がもらえるかも?
0946デフォルトの名無しさん
2016/06/28(火) 21:14:00.03ID:nWotbSXo>>945
ご回答ありがとうございます。
とりあえずpthread環境での現状把握はできました。
都合によりアプリケーションの説明はできないのですが、
経験の浅い私はいつくかの手法を試行錯誤していく必要があることもわかり感謝しております。
0947デフォルトの名無しさん
2016/07/02(土) 18:05:27.49ID:jfeNwyow文字コードはutf-8です。どう書けば良いですか?
0948デフォルトの名無しさん
2016/07/02(土) 18:22:53.79ID:9Q8EwEkW0949デフォルトの名無しさん
2016/07/02(土) 18:49:17.03ID:O/VWdu0D#include <wchar.h>
int main(void)
{
wchar_t *str = L"こんにちは,世界!";
if (wcschr(str, L',')) puts("True");
else puts("False");
return 0;
}
0950デフォルトの名無しさん
2016/07/02(土) 18:55:20.32ID:RKIHWAuMそれ、utf-8じゃないよね?
0951片山博文MZ ◆T6xkBnTXz7B0
2016/07/02(土) 18:59:51.90ID:e6MV0/B3#include <stdio.h>
#include <string.h>
int main(void)
{
char *str = L"こんにちは,世界!";
if (strstr(str, L",")) puts("True");
else puts("False");
return 0;
}
0952片山博文MZ ◆T6xkBnTXz7B0
2016/07/02(土) 19:05:08.76ID:e6MV0/B3//save as UTF-8
#include <stdio.h>
#include <string.h>
int main(void)
{
const char *str = "こんにちは,世界!";
if (strstr(str, ",")) puts("True");
else puts("False");
return 0;
}
0953デフォルトの名無しさん
2016/07/02(土) 19:13:21.68ID:N0+QBUWP0954片山博文MZ ◆T6xkBnTXz7B0
2016/07/02(土) 19:27:22.89ID:e6MV0/B3#include <stdio.h>
#include <string.h>
int main(void)
{
const char *str = u8"こんにちは,世界!";
if (strstr(str, u8",")) puts("True");
else puts("False");
return 0;
}
これでいいのかい?
古いコンパイラでは動かないかも
0955デフォルトの名無しさん
2016/07/02(土) 19:29:48.84ID:jfeNwyowint main(){
char str[] =
0956デフォルトの名無しさん
2016/07/02(土) 19:44:51.68ID:RGWnw+KAconst char *str = "こんにちは,世界!";
int len=strlen(str);
for(int i=0;i<len-3;i++){
if(str[i]==(char)0xEF && str[i+1]==(char)0xBC && str[i+2]==(char)0x8C)
return 1;
}
return 0;
0957デフォルトの名無しさん
2016/07/02(土) 19:46:13.26ID:RGWnw+KA0958デフォルトの名無しさん
2016/07/02(土) 19:56:55.39ID:RKIHWAuMそもそも、半角カンマならutf-8でもアスキーコードと同じだろに、と思ってしまったよ。
0959デフォルトの名無しさん
2016/07/04(月) 12:40:15.84ID:pDU/S/zK0960デフォルトの名無しさん
2016/07/04(月) 14:53:28.85ID:ZmexPAEv0961デフォルトの名無しさん
2016/07/04(月) 22:13:59.31ID:JCby0dsF0962デフォルトの名無しさん
2016/07/04(月) 23:16:47.91ID:C8fBMBnD半角の何が悪い?
0963デフォルトの名無しさん
2016/07/05(火) 00:09:43.46ID:geXOR7z6欧米言語しか頭にない連中が2byteに収めようと決めたけど即破綻して
右往左往しつつたくさん符号化形式作っちゃった継ぎ接ぎ規格だから
初期のunicodeを実装したcのwcharもjavaのcharもwindowsの内部形式も
utf-8に統一されつつある現在ではみんな負の遺産になっちゃった
0964デフォルトの名無しさん
2016/07/05(火) 00:18:02.71ID:UYP3Y0BV0965デフォルトの名無しさん
2016/07/05(火) 02:24:22.63ID:3TGl+uoW0966デフォルトの名無しさん
2016/07/05(火) 03:31:02.93ID:vmUQz3+O一応はJIS B 0191で決まってるらしいが高さと幅がほぼ1:1の文字の大きさが全角、
全角の半分が半角とかだから同じ文字コードでも固定幅フォントだと全角だけど
プロポーショナルフォントだとほぼ1:1と言えなくもないような、でもやっぱり
やや扁平してるから全角じゃないみたいなことになる
もちろんそれ以外の意味で全角、半角を使う人もいるから滅茶苦茶になって
意思疎通を難しくするだけ
0967デフォルトの名無しさん
2016/07/05(火) 08:58:48.61ID:xw5v0Ltl意思疏通のため仕方なく
0968デフォルトの名無しさん
2016/07/05(火) 21:32:47.87ID:U9C+97cD0969デフォルトの名無しさん
2016/07/05(火) 22:25:19.31ID:7XO+QUH+0970デフォルトの名無しさん
2016/07/05(火) 22:33:27.38ID:Jc9WRZcr0971デフォルトの名無しさん
2016/07/05(火) 22:58:18.11ID:V/e0kDMU0972デフォルトの名無しさん
2016/07/05(火) 23:45:44.63ID:GMrEG8FVが返す文字列がコンパイラによって全然違うので愕然としました。
移植のため大幅な書き換えが必要になってしまったのです・・・。
C言語の仕様として、実装依存のようですが、なぜ具体的な返り値まで規定しなかったのでしょうか?
何か不都合でもあるんでしょうか?
0973デフォルトの名無しさん
2016/07/05(火) 23:58:21.73ID:/0fmAgwR0974デフォルトの名無しさん
2016/07/06(水) 00:00:40.80ID:3xqNkW2kそれC++だよね、というのはさておき
実行時に型の文字列が必要ってどんなことやってるんだろう
型周りはあんまり扱ったことないので非常に興味がある
単なる型比較ならコンパイル時にできるはずだし
0975デフォルトの名無しさん
2016/07/06(水) 08:54:47.18ID:mZVlgRq0型情報を name() から生成して保存してるのかねー
0976デフォルトの名無しさん
2016/07/06(水) 19:21:53.14ID:73ByLRkJ0977デフォルトの名無しさん
2016/07/06(水) 19:27:35.37ID:QV/s5k6iコンパイラ変えるんだけど、既存の書き出されたファイルはそのまま使いたくて
でも
>が返す文字列がコンパイラによって全然違うので愕然としました。
>移植のため大幅な書き換えが必要になってしまったのです・・・。
に陥ったんじゃねーかな?と思ったわけー
0978972
2016/07/06(水) 19:52:27.01ID:o0f3fZWQなぜtypeid().name()を使ったかというと、
同じような動作をするが、メンバー変数の型だけが違う、というクラスを作っていまして、
さらに、どういう型かを他クラスから文字列で識別できるようにもしなければならい都合がありました。
そこで、テンプレートクラスにして、その引数に型を指定し、その型から文字列を生成する、という方法を採りました。
これは、コンストラクタで型の文字列を指定しても実現できることですので、
移植性を考慮して、その方法に変えようと思います。
0979デフォルトの名無しさん
2016/07/06(水) 19:56:15.90ID:M/EGIEaV型を他クラスから文字列で識別
は別にtypeid(T).name()渡すので良くない?
0980デフォルトの名無しさん
2016/07/06(水) 20:00:10.21ID:wptQ7USw0981デフォルトの名無しさん
2016/07/07(木) 21:23:17.86ID:OCqvo+9Yのを以前見かけたのですが、どうやって記述したら実現できるのでしょうか?
また、それを何と呼びますか?
0982デフォルトの名無しさん
2016/07/07(木) 21:30:59.45ID:+CDrHRBKstatic 関数かな?
0983デフォルトの名無しさん
2016/07/07(木) 21:31:11.28ID:X/6GDdksstatic関数
0984デフォルトの名無しさん
2016/07/07(木) 21:33:16.20ID:OCqvo+9Y0985984
2016/07/07(木) 23:00:04.01ID:OCqvo+9Yそれと、インターポジショニングについても興味があるのですが、
どこかにいいリファレンスはないですか?
0986デフォルトの名無しさん
2016/07/08(金) 06:02:58.90ID:Y7n6IncG0987デフォルトの名無しさん
2016/07/08(金) 19:35:09.57ID:CMdG0/Nt0988デフォルトの名無しさん
2016/07/09(土) 19:28:18.58ID:wrlFaChs0989デフォルトの名無しさん
2016/07/09(土) 19:47:57.91ID:SM0qakfh0990デフォルトの名無しさん
2016/07/10(日) 20:40:20.25ID:J7L2i5Ph0991デフォルトの名無しさん
2016/07/10(日) 21:50:14.19ID:Hf6Ci9f/http://echo.2ch.net/test/read.cgi/tech/1468154937/
0992デフォルトの名無しさん
2016/07/10(日) 22:10:17.50ID:Hf6Ci9f/0993デフォルトの名無しさん
2016/07/10(日) 23:58:27.69ID:a5wCiUU00994デフォルトの名無しさん
2016/07/11(月) 00:00:06.97ID:IFVNL0870995デフォルトの名無しさん
2016/07/11(月) 02:19:59.70ID:htK4V8FQ0996デフォルトの名無しさん
2016/07/11(月) 08:45:51.60ID:pao9IZxi乙
0997デフォルトの名無しさん
2016/07/11(月) 09:17:36.99ID:vUeGFEyK0998デフォルトの名無しさん
2016/07/11(月) 09:19:41.98ID:vUeGFEyK0999デフォルトの名無しさん
2016/07/11(月) 09:21:41.80ID:vUeGFEyK1000デフォルトの名無しさん
2016/07/11(月) 09:43:08.74ID:IC330+YV10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 61日 20時間 29分 22秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。