C言語なら俺に聞け(入門編)Part 126
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/05/25(日) 22:55:50.62ID:/Ed46QJw★前スレ
C言語なら俺に聞け(入門編)Part 125
http://peace.2ch.net/test/read.cgi/tech/1392482954/
★過去スレ
ttp://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 167代目
http://peace.2ch.net/test/read.cgi/tech/1392388003/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
# サイズが大きい場合はアップローダ等を利用してください。
ttp://codepad.org/
ttp://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
当たり前の事ですが、2chではコピペ荒らしは禁止されています。
0153デフォルトの名無しさん
2014/06/28(土) 00:39:56.75ID:9xXyI8Cq0154デフォルトの名無しさん
2014/06/28(土) 02:55:52.88ID:UKD/KYiNどうすりゃええの?
0155デフォルトの名無しさん
2014/06/28(土) 06:21:56.82ID:8spGr7lj1つだけNULLをキャストしても問題ない型が99にある気がするw
0156デフォルトの名無しさん
2014/06/28(土) 06:22:53.35ID:8spGr7lj符号の有り無しでペアw
0157デフォルトの名無しさん
2014/06/30(月) 11:52:03.92ID:nVpZ4SaXint convert(void)
int と voidの違いってなんですか?
0158デフォルトの名無しさん
2014/06/30(月) 12:00:46.27ID:lJxnkRTG0159デフォルトの名無しさん
2014/07/01(火) 08:47:59.26ID:aIWSKYXTgccで動的ライブラリ(libxxx.so)をリンクして実行ファイル作るとき、
コンパイラやリンカは何してるのでしょうか?
実際のリンクは実行時に行われると理解しているのですが、、、
型のチェックとかだけしてるのでしょうか?
0160デフォルトの名無しさん
2014/07/01(火) 09:20:22.53ID:kPzbbcEJ★+ニュース板
・ 2NN (推薦)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推薦)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推薦)
・ READ2CH
・ i-ikioi
※ 要タイトル名検索
※ 推奨2chブラウザ併用
0161デフォルトの名無しさん
2014/07/01(火) 13:06:22.47ID:xCHeKPxQリンクできるかのチェックをするし、そのライブラリを使うという情報を実行ファイルにいれる。
動的リンクの場合、ライブラリの関数のアドレスが不定だから
未解決のままにしてる(リンカはなにもしない)と思ってるかもしれないけど
普通の環境だと関数コールの宛先は確定してるので、普通に?リンクしてるよ
0162デフォルトの名無しさん
2014/07/01(火) 14:11:38.53ID:WdBXMFPF0163デフォルトの名無しさん
2014/07/01(火) 18:08:52.69ID:ktmXStnCscanfでいいんですか?
0164デフォルトの名無しさん
2014/07/01(火) 18:09:41.81ID:ktmXStnC0165デフォルトの名無しさん
2014/07/01(火) 18:10:25.17ID:ktmXStnCvoid ○○(??)
0166デフォルトの名無しさん
2014/07/01(火) 18:26:34.60ID:/V+CYOkDどう関連するの?
0167デフォルトの名無しさん
2014/07/01(火) 19:59:53.55ID:WdBXMFPF0168デフォルトの名無しさん
2014/07/01(火) 21:00:02.11ID:Jx+aGKzH自分は最近明解c言語入門編でc言語の勉強を始めましたが、
p27のlist2−7をがうまくいきません
下が自分の参考書をみて打ち込んだプログラムですが
#include <stdio.h>
int main(void)
{
double vx,vy;
puts("2つの数を入力してください");
printf("実数vx:"); scanf_s("%1f", &vx);
printf("実数vy:"); scanf_s("%1f", &vy);
printf("vx+vy=%f\n", vx + vy);
printf("vx-vy=%f\n", vx - vy);
printf("vx*vy=%f\n", vx * vy);
printf("vx/vy=%f\n", vx / vy);
return(0);
}
これをデバックなしで開始して
vxに40.5を入力まではできるのですが
vyが入力できず滅茶苦茶な値がかえってきます
開発環境はvisual studio 2013 です
0169168
2014/07/01(火) 21:03:25.82ID:Jx+aGKzH0170デフォルトの名無しさん
2014/07/01(火) 21:18:01.53ID:XzU8UZNA0171デフォルトの名無しさん
2014/07/02(水) 06:23:21.82ID:f2aJiwOs>>162
ありがとうございます
なんとなくイメージできました。
0172デフォルトの名無しさん
2014/07/03(木) 00:52:06.61ID:yifSsDmR0173デフォルトの名無しさん
2014/07/03(木) 00:55:09.38ID:DXaZxPH60174デフォルトの名無しさん
2014/07/03(木) 01:03:49.64ID:yifSsDmR保護するってそういう関数があるの?
int *p =malloc
if(fork()==0){
pにアクセス
}
これってできる?
0175デフォルトの名無しさん
2014/07/03(木) 01:29:24.35ID:ZQktXMZqforkするとメモリ内容がコピーされて別々になる。
アドレスは同じになるようにページングで見せかけてる。
0176デフォルトの名無しさん
2014/07/03(木) 01:39:31.64ID:yifSsDmRページングはよくわからないけど、プロセスごとにメモリ空間?ができるん?
アドレスの値が一緒なのに指してる先が違うってことだよね?
0177デフォルトの名無しさん
2014/07/03(木) 01:48:56.03ID:dV5x+oVaMS-DOS のような原始的な OS でもない限り、各プロセスは独自のメモリ空間を持つ
0178デフォルトの名無しさん
2014/07/03(木) 02:45:28.93ID:yrFJuqwB0179デフォルトの名無しさん
2014/07/03(木) 07:05:57.11ID:hoM7mJ8vそう
>>177
メモリ管理ユニットの無い環境で使われるOSは今でも全プロセスで同一のメモリ空間を使う事がある
0180デフォルトの名無しさん
2014/07/03(木) 07:58:10.25ID:ZQktXMZq興味本位で聞くけど、そういうOSで今でもよく使われてるのあったら名前教えて。
PICとかAVRとかのマイコン用かな。
0181デフォルトの名無しさん
2014/07/03(木) 08:07:02.97ID:ZQktXMZqMS-DOSはセグメントでページングと同等のことしてなかった?
それともロード時にローダーが頑張ったの?
メモリ保護は当然ないと思うけど。
0182デフォルトの名無しさん
2014/07/03(木) 08:47:49.99ID:hoM7mJ8vあんま詳しく知ってるわけじゃないけど、MMU無しのμClinuxとかは今でもメンテされてるっぽい。
H8(開発停止、生産供給のみ)で使うMESってOSも確かMMU無しで、ホビー用途では流行ってた筈。
ホビーで使われてる場合は作例等がネット上で観測できるから多少はシェアが分かるけど、
業務で使われてる場合は実際に何がどの位の数で使われてるかよくわからん。
PICやAVRまでいくと規模が小さすぎる上にプログラム空間がFlashメモリ固定だったりして、
OSというよりブートローダーって呼ばれる類の小さなシステムばかりな気がする。
>>181
セグメントとEMSは別の仕組みだった気がするけど、それら含めたメモリ空間は共用って事になるんでね?
0183デフォルトの名無しさん
2014/07/03(木) 08:58:11.99ID:ZQktXMZqありがとう。OSについて参考になった。
セグメントはリロケートしやすくする機構であって
確かに、空間を分けるってものじゃないね。
セグメントレジスタはいじり放題だし。
0184デフォルトの名無しさん
2014/07/03(木) 13:39:10.99ID:b94sekO1int main(void)
{
int i;
for (i = 0; i < 10; i++)
printf("%d ", series());
return 0;
}
/* これは正しくない */
int series(void)
{
int total;
total = (total + 1423) % 1422;
return total;
グローバル変数とローカル変数なんだけど
なんでエラーなのかわかりません・・・orz
0185デフォルトの名無しさん
2014/07/03(木) 13:49:32.71ID:x6tWgs3ustatic int total;
0186デフォルトの名無しさん
2014/07/03(木) 14:40:21.54ID:M7lcZRBSとりあえず最後に } がいるんじゃないか
0187デフォルトの名無しさん
2014/07/03(木) 15:31:36.05ID:hoM7mJ8v0188デフォルトの名無しさん
2014/07/03(木) 15:59:19.23ID:UCpRmhSf0189デフォルトの名無しさん
2014/07/05(土) 06:40:04.07ID:ZLTRe8Cjtron
VxWorks
0190デフォルトの名無しさん
2014/07/05(土) 09:39:23.10ID:NUdHoME9こいつはたしかトイレにいっていたみたいhttp://blog-imgs-46.fc2.com/s/a/r/saritoma/kikitoilet.jpg
0191デフォルトの名無しさん
2014/07/05(土) 09:53:44.96ID:LmLbrS1U0192デフォルトの名無しさん
2014/07/05(土) 13:56:41.10ID:PrOFO7ghメモリーマップドファイルで共有する領域ならお互い読み書きできる
0193デフォルトの名無しさん
2014/07/08(火) 11:31:06.66ID:Cf/IosMuどうすればいい?
0194デフォルトの名無しさん
2014/07/08(火) 11:42:33.70ID:SUG27oZM#define END ;}
0195デフォルトの名無しさん
2014/07/08(火) 11:45:11.67ID:z6eg5pPoどう分からんのかくやしく。
0196デフォルトの名無しさん
2014/07/08(火) 13:05:29.37ID:w5EkuvqN中括弧を省いていいケースが不透明というならまだ分からなくもない
結論:省くな
0197デフォルトの名無しさん
2014/07/08(火) 16:48:15.10ID:SUG27oZM0198デフォルトの名無しさん
2014/07/08(火) 18:39:45.73ID:/j57w1JY単にスコープのためだけにブロック作るのって、
大抵は別関数にしたほうが読みやすい
0199デフォルトの名無しさん
2014/07/08(火) 23:31:14.68ID:w5EkuvqN{
// ...
}
while (...)
{
// ...
}
0200デフォルトの名無しさん
2014/07/08(火) 23:46:50.82ID:qe5n8Iypあきらかにセミコロン漏れでエラーでしょ
0201デフォルトの名無しさん
2014/07/09(水) 08:52:10.73ID:2y0ZrYim0202デフォルトの名無しさん
2014/07/09(水) 09:23:46.87ID:Lo3XeDUIVBやRubyなどのコードブロックを使わない言語
やってたからだろうな。
0203デフォルトの名無しさん
2014/07/09(水) 09:40:18.51ID:3VBCG+k8密結合にしかできないんならスコープを分けるのもそれほど筋が良くなかったってこと
0204デフォルトの名無しさん
2014/07/09(水) 11:39:38.46ID:2y0ZrYim元関数内の変数と同じ型と順序でメンバが定義された構造体の
ポインタにそのアドレスを代入する鬼仕様
0205デフォルトの名無しさん
2014/07/09(水) 22:31:57.03ID:D5g6nYoodeleteするタイミングを明確にする
0206デフォルトの名無しさん
2014/07/09(水) 23:43:58.20ID:Fnk70cEFCにはクラスもdeleteもないけどな
0207デフォルトの名無しさん
2014/07/10(木) 07:08:11.75ID:0vEa2fxDポリモーフィズムや継承までやってんだぜ
要はC++が裏方でやってる事を全部書かなきゃ行けないという本だった
0208デフォルトの名無しさん
2014/07/10(木) 09:20:05.65ID:7qdPhGap組み込みではそういうのもあり
OOPを勉強したい人にもあり
実用性はグレーかな
0209デフォルトの名無しさん
2014/07/10(木) 09:44:17.33ID:ih9I7QvO0210デフォルトの名無しさん
2014/07/10(木) 12:11:26.25ID:1VHW603R0211デフォルトの名無しさん
2014/07/10(木) 12:33:07.80ID:dtRC2hu/OOPは…まあ、必要に応じて最小限で良い気がする。
何かOOPが目的な奴もいるからoopsって感じ。
0212デフォルトの名無しさん
2014/07/10(木) 13:35:53.89ID:b/HkBDRx最近は組み込みでもC++使えるくらいリッチな環境になってるの?
0213デフォルトの名無しさん
2014/07/10(木) 14:15:32.49ID:E/oPwPCa0214デフォルトの名無しさん
2014/07/10(木) 17:33:49.48ID:nbN7AmchSRAMの無い8ビットマイコンはCもほぼ無理。
8ビットでもSRAM乗ってればCも使えるし実用になるかはともかくC++も使える。
ARMあたりになると組み込み組み込みしてる物からAndroid走るくらいのやつまであってC++は当然動く。
ていうか組み込みPCを持ってくると結構前からWindowsが動くくらいの状態だからC++が動かないわけがない。
0215デフォルトの名無しさん
2014/07/10(木) 17:36:15.58ID:hqBK5Ssdだがしかし、組み込みはアセンブラかC言語が普通だね。
0216デフォルトの名無しさん
2014/07/10(木) 17:47:00.79ID:ih9I7QvO今時のSBCはLinuxが載ってて当たり前だから、普通にC++使えるんだけど。
PICみたいな小容量のマイコンだってCで書くのが当たり前だし。
0217デフォルトの名無しさん
2014/07/10(木) 18:10:11.86ID:ZvvgKyMx0218デフォルトの名無しさん
2014/07/10(木) 18:24:59.00ID:nbN7Amch彼の家の家電製品は時計に電灯に洗濯機から炊飯器まで、
全てLinux搭載またはマイコン非搭載で揃ってたりするのかな。頂点SEさんパネェっス
0219デフォルトの名無しさん
2014/07/10(木) 20:39:54.83ID:E/oPwPCaシビアな要求あるところは、使うプロセッサを分けるとか専用回路とか
0220デフォルトの名無しさん
2014/07/10(木) 20:47:58.23ID:E/oPwPCa妄想君には大半がLinuxで動いていることになっているんだろう
0221デフォルトの名無しさん
2014/07/10(木) 20:55:31.00ID:nbN7AmchRTOSで駄目なくらいシビアな所は専用回路というかプログラマブルロジックというか
# そしてプログラマブルロジック上にソフトプロセッサが乗る、と
0222デフォルトの名無しさん
2014/07/10(木) 21:09:32.99ID:E/oPwPCaLinuxのRTOSがうまく使えなかったんだなぁと思ったな
0223デフォルトの名無しさん
2014/07/11(金) 08:11:37.83ID:uxQKijF3それはさて、この板の住人が語る組み込みなんてそんなもんだろ。
0224デフォルトの名無しさん
2014/07/11(金) 11:40:20.70ID:OHkVxFp9C++で書きたいと思うことがよくある
0225デフォルトの名無しさん
2014/07/11(金) 13:19:50.46ID:V7EkPFDv意地でもCオンリーでコード組むことなら良くある
0226デフォルトの名無しさん
2014/07/12(土) 20:21:28.84ID:2sG0i3qJ0227デフォルトの名無しさん
2014/07/13(日) 07:34:58.24ID:fGnnU/OX?
0228デフォルトの名無しさん
2014/07/13(日) 08:55:54.74ID:OfL9oG5/そのスマフォのOSカーネルには linuxやFreeBSDの血が脈々と流れているというのだが‥
0229デフォルトの名無しさん
2014/07/13(日) 09:11:18.87ID:170EvHlIその組み込みLinuxのエンジニアは負け組
0230デフォルトの名無しさん
2014/07/13(日) 09:39:43.96ID:0Iul1EJeなんで?
0231デフォルトの名無しさん
2014/07/13(日) 17:46:36.86ID:j69AiKJb0232デフォルトの名無しさん
2014/07/13(日) 18:23:56.48ID:iAOcvloyお前程度の知能の奴にはたいして変わらん
0233デフォルトの名無しさん
2014/07/13(日) 18:52:07.95ID:7y/Xcjj/ほとんど一緒だから気にしなくていいよ
0234デフォルトの名無しさん
2014/07/14(月) 01:04:15.33ID:upDk1kffケータイ開発の泥沼引きずってそうだから、とか。
0235デフォルトの名無しさん
2014/07/14(月) 01:12:52.53ID:k3UE1OMQ生きてるだけの屍増やしまくって、あの世に送るより怖いことしたことすらわかったなかったような
0236デフォルトの名無しさん
2014/07/15(火) 21:24:12.02ID:l5KdQcGw速度差がないそうですが本当ですか?
だとすると現在の参考書でポインタを解説したものは速度的には
役にたたない、ということですか?
0237デフォルトの名無しさん
2014/07/15(火) 23:19:53.64ID:c2LLaewHポインタの場合メモリは何処に確保する?
0238デフォルトの名無しさん
2014/07/15(火) 23:22:48.98ID:G8cUQ8aOポインタの配列というパターンはどうするのというのは置いといて、
連結リストのソートのことだとすると、
最初からそのデータ構造を持っていて、
ソートが必要になるシチュエーションなんていくらでもありうる。
いちいち配列に変換したりしないよ。
0239デフォルトの名無しさん
2014/07/16(水) 00:55:22.22ID:m0YcwmXRたとえばC言語で「構造体の配列」と「構造体へのポインタの配列」について
要素の並びを変更に要する時間を比較してみると、
前者は構造体の全メンバの値をコピーしなければならないのに対して
後者はポインタの値だけをコピーすればいいから、後者の方が速い
ただし、最近は「PCの処理能力が飛躍的に向上している」から、
よほど巨大な配列でない限り、両者を性能測定しても僅かな差にしかならない
だから(両者の間には)「速度差がない」と言う人がいるのかもしれないが、
学校の演習やアルゴリズムの初歩的な学習過程のように、「まずは動く事が最重要」
という世界であれば、そういった意見も間違いではない(理由は上に書いた)
ただし>>236が社会に出て一人前のC言語プログラマを目指すのなら、
「コードの簡潔さと可読性を損なわない範囲」で論理的に速い手法、
つまりポインタを迷わず選択できる技術レベルを目指したほうがいいと思う
0240デフォルトの名無しさん
2014/07/16(水) 01:35:42.22ID:Remwvl230241デフォルトの名無しさん
2014/07/16(水) 08:22:39.84ID:BURSNuP/みんなが言うように、理論上一般的にはポインタの方が速いし、いかなる場合でも安定速度で動作すると思う。
でも、ボトルネックの多くはアルゴリズムになるので、同じアルゴリズムを使うなら、「事実上」優位な差は無いって事だと思う。
つまり、「速度を気にするなら、ポインタか実体か等の些細な事を気にするのではなくて、まずアルゴリズムに注力しなさい」ってことでは無いだろうか?
0242デフォルトの名無しさん
2014/07/16(水) 09:22:00.35ID:b0IB8P33軍曹のイメージが強いよね
0243デフォルトの名無しさん
2014/07/16(水) 11:13:12.38ID:Bfvq8rh+0244デフォルトの名無しさん
2014/07/16(水) 12:52:51.21ID:VblCYr0v構造体を見分ける為。昔々、typedefがなかった頃からの仕様。
0245デフォルトの名無しさん
2014/07/16(水) 22:50:56.69ID:i1elQGnl0246デフォルトの名無しさん
2014/07/18(金) 20:01:06.72ID:QuIJUfIo0247デフォルトの名無しさん
2014/07/24(木) 11:58:13.75ID:WXYCrUOOさっぱりわからん・・・orz
0248デフォルトの名無しさん
2014/07/24(木) 12:16:11.82ID:yzB7ELG1文字を入れ替えるだけという前提が間違っているとか。
0249デフォルトの名無しさん
2014/07/24(木) 13:07:02.46ID:3KospQng0250デフォルトの名無しさん
2014/07/24(木) 13:18:09.15ID:xTQLZeLW0251デフォルトの名無しさん
2014/07/25(金) 08:17:52.98ID:Eg4WjsQK文字を入れ換えるのは単語を入れ換えるのと同義なんだよな
0252デフォルトの名無しさん
2014/07/25(金) 09:32:56.18ID:VBJ8WzY72重までだったら、わかるんだが・・・
■ このスレッドは過去ログ倉庫に格納されています