!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 153
https://mevius.5ch.net/test/read.cgi/tech/1566050562/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 154
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bf63-lB9F)
2020/01/14(火) 19:32:30.16ID:SgRnb4BR0288デフォルトの名無しさん (ワッチョイ 6aa5-OeZ9)
2020/02/02(日) 19:18:27.60ID:825maVGz0 >>219
そりゃーC言語よりも古いCOBOLがあるもん
銀行案件は全部そっち任せだろ
だからそういうライブラリを発達させる必要が無かった
COBOL最盛期がいつかは知らんがきっとIBM最高益の時代あたりだろ
そりゃーC言語よりも古いCOBOLがあるもん
銀行案件は全部そっち任せだろ
だからそういうライブラリを発達させる必要が無かった
COBOL最盛期がいつかは知らんがきっとIBM最高益の時代あたりだろ
289デフォルトの名無しさん (ワッチョイ 8a1e-7ddI)
2020/02/02(日) 20:44:43.11ID:F6yWVrL10 >>274
普通に書けば最適化してくれる場合もある。
とりあえず gcc -O2 とやってみた。
extern int w,x,y,z;
void foo( void) {
y = w / x;
z = w % x;
}
int bar( int x,int y){ return x / y + x % y;}
普通に書けば最適化してくれる場合もある。
とりあえず gcc -O2 とやってみた。
extern int w,x,y,z;
void foo( void) {
y = w / x;
z = w % x;
}
int bar( int x,int y){ return x / y + x % y;}
290デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/02(日) 20:51:51.61ID:gkoi3ncld 割り算は遅い
スーパーコンピュータでも遅い
定数の割り算で済む所は定数に
並列化可能ならSIMD命令で複数一気に
スーパーコンピュータでも遅い
定数の割り算で済む所は定数に
並列化可能ならSIMD命令で複数一気に
291デフォルトの名無しさん (ワッチョイ a612-i7CI)
2020/02/02(日) 20:55:57.98ID:SWo7Ruqh0 >>285
まあそういうことだ
おまえさんにとっての関心事に関係するかどうかは知らん
さっき言ったとおり、俺は保育士じゃないんで他人ん家の坊ちゃん嬢ちゃんは扱えない
プラレールだかリカちゃんだかの相手はしてられない
まあそういうことだ
おまえさんにとっての関心事に関係するかどうかは知らん
さっき言ったとおり、俺は保育士じゃないんで他人ん家の坊ちゃん嬢ちゃんは扱えない
プラレールだかリカちゃんだかの相手はしてられない
292デフォルトの名無しさん (ワッチョイ a612-i7CI)
2020/02/02(日) 20:57:05.76ID:SWo7Ruqh0293デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/02(日) 23:53:32.36ID:gkoi3ncld タンジェントもべき乗も遅いけど
使う頻度的には割り算より圧倒的に少ないし
見るからに遅そうだから気を付けるだろう
割り算や余りは手軽に使いがちで遅い
例えばSkylakeでは加減乗算の100倍くらいかかる
割り算と余り両方使うなら
以下のように書いた方が良い
c=a/b;
d=a-c*b;
除算命令を2回呼ぶことはなくなるし
bが定数なら乗算に置き換えてくれる
ライブラリだとbが定数でも除算命令を使ってしまうと思う
使う頻度的には割り算より圧倒的に少ないし
見るからに遅そうだから気を付けるだろう
割り算や余りは手軽に使いがちで遅い
例えばSkylakeでは加減乗算の100倍くらいかかる
割り算と余り両方使うなら
以下のように書いた方が良い
c=a/b;
d=a-c*b;
除算命令を2回呼ぶことはなくなるし
bが定数なら乗算に置き換えてくれる
ライブラリだとbが定数でも除算命令を使ってしまうと思う
294デフォルトの名無しさん (ワッチョイ ea79-/fp1)
2020/02/03(月) 07:43:30.26ID:0n0692Cx0 除算が遅いってのは常識だな
浮動小数点数演算の話だが2回以上同じ数で割るなら逆数を取っておいてそれを掛けろと習ったわ
そもそも浮動小数点数演算が圧倒的に遅いから可能な限り整数型で済ませろとも
浮動小数点数演算の話だが2回以上同じ数で割るなら逆数を取っておいてそれを掛けろと習ったわ
そもそも浮動小数点数演算が圧倒的に遅いから可能な限り整数型で済ませろとも
295デフォルトの名無しさん (アウアウクー MM7d-2G11)
2020/02/03(月) 08:16:49.22ID:vFO4eQ5PM どこでそんなこと習うんだ…
296デフォルトの名無しさん (ワッチョイ 89b3-x67y)
2020/02/03(月) 08:20:37.59ID:e9E2NTEb0 浮動小数点が圧倒的に遅いかどうかはCPU次第
PCなら速いし
CPUに命令がなければソフトウェア実装になるので遅い
この場合、当然floatよりdoubleの方が遅い
(floatもdoubleも32bitの環境もあるけど)
浮動小数点の割り算は
定数であれば1個でも逆数をかける方が良い
x / [定数] と x * (1.0/[定数])
で値が異なることがあるため、最適化してくれない場合がある
PCなら速いし
CPUに命令がなければソフトウェア実装になるので遅い
この場合、当然floatよりdoubleの方が遅い
(floatもdoubleも32bitの環境もあるけど)
浮動小数点の割り算は
定数であれば1個でも逆数をかける方が良い
x / [定数] と x * (1.0/[定数])
で値が異なることがあるため、最適化してくれない場合がある
297デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
2020/02/03(月) 08:22:21.52ID:m5kUFkC70 割り算と余りを一回で計算できる命令がCPUにはあるのよ
298デフォルトの名無しさん (ワッチョイ 89b3-x67y)
2020/02/03(月) 08:27:41.12ID:e9E2NTEb0299デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
2020/02/03(月) 08:36:20.54ID:m5kUFkC70 割り算が100倍掛かるって嘘じゃない?
調べたら掛け算より少し遅いくらいだけみたいだけど
調べたら掛け算より少し遅いくらいだけみたいだけど
300デフォルトの名無しさん (ブーイモ MMc9-BGKF)
2020/02/03(月) 09:47:15.11ID:x3IhE4UHM 浮動小数点の除算はニュートン法使うからそれほど遅くない。乗算の数倍程度。
整数の除算は基本的に高速化できないのでだいぶ遅い。
整数でも定数で除算すると逆数の乗算プラス補正で実装されるので速い。
アセンブリ出させて見てみるべし。
整数の除算は基本的に高速化できないのでだいぶ遅い。
整数でも定数で除算すると逆数の乗算プラス補正で実装されるので速い。
アセンブリ出させて見てみるべし。
301デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
2020/02/03(月) 11:19:33.45ID:m5kUFkC70302デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/03(月) 12:43:23.75ID:jOrmfTQLd instlatx64でSkylakeの64bit命令の
スループットを見ると
IDIVはフルビットで95クロック
ADDは0.33, IMULは1クロック
AVX命令だと乗算や積和も0.5クロック
遅くて使われなくなったFSINが130クロックだから
遅さがわかると思う
コンパイラはなるべくこの命令を使わないで済むように
また使う回数をなるべく減らすよう工夫するんだけど
標準ライブラリの場合はIDIVを無条件で使ってしまう
スループットを見ると
IDIVはフルビットで95クロック
ADDは0.33, IMULは1クロック
AVX命令だと乗算や積和も0.5クロック
遅くて使われなくなったFSINが130クロックだから
遅さがわかると思う
コンパイラはなるべくこの命令を使わないで済むように
また使う回数をなるべく減らすよう工夫するんだけど
標準ライブラリの場合はIDIVを無条件で使ってしまう
303デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/03(月) 12:49:05.54ID:jOrmfTQLd 浮動小数点だと差はちょっと縮まる
加減乗算と積和は0.5クロック
除算は倍精度スカラーで4クロック、ベクタで8クロック
倍精度浮動小数点の積和演算が4個同時に出来る命令が
毎クロック2個ずつ実行出来るのに
ただの整数除算1個が95クロックもかかる
遅さがわかるでしょ?
加減乗算と積和は0.5クロック
除算は倍精度スカラーで4クロック、ベクタで8クロック
倍精度浮動小数点の積和演算が4個同時に出来る命令が
毎クロック2個ずつ実行出来るのに
ただの整数除算1個が95クロックもかかる
遅さがわかるでしょ?
304デフォルトの名無しさん (ワッチョイ 39d2-fhCF)
2020/02/03(月) 12:52:56.44ID:m5kUFkC70 100倍掛かるなら100倍時間掛かるはずでしょ
そんなわけ無いじゃん
そんなわけ無いじゃん
305デフォルトの名無しさん (アウウィフ FF21-0Ybi)
2020/02/03(月) 13:50:54.22ID:62FLJlSTF パイプラインですね判りますω
306デフォルトの名無しさん (ワッチョイ a612-i7CI)
2020/02/03(月) 15:12:48.45ID:TXSv3nXz0 除算器をパイプライン化することで
スループットは上げられても
レイテンシは変わらないかんな
スループットは上げられても
レイテンシは変わらないかんな
307デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/03(月) 15:14:45.18ID:XXjF7BB80 予測で
308デフォルトの名無しさん (ワッチョイ 5d35-MzNC)
2020/02/04(火) 01:59:00.38ID:SgzhJHen0 今どき役に立つ場面は少ないけどこういうの楽しいな
309デフォルトの名無しさん (ワッチョイ 7d01-0Ybi)
2020/02/04(火) 06:57:32.95ID:j6eziqdx0 以下のプログラムのb_testにはなぜ0x3322ではなく、0x4433が代入されるのでしょうか?
#include <stdio.h>
typedef struct
{
unsigned char a;
unsigned short b;
} TEST_2;
int main(void)
{
unsigned char bytes[] = { 0x11, 0x22, 0x33, 0x44 };
TEST_2* pMemoryDevice = (TEST_2*)bytes;
unsigned char a_test = pMemoryDevice->a;
unsigned short b_test = pMemoryDevice->b;
printf("0x%X\n", b_test);
return 0;
}
#include <stdio.h>
typedef struct
{
unsigned char a;
unsigned short b;
} TEST_2;
int main(void)
{
unsigned char bytes[] = { 0x11, 0x22, 0x33, 0x44 };
TEST_2* pMemoryDevice = (TEST_2*)bytes;
unsigned char a_test = pMemoryDevice->a;
unsigned short b_test = pMemoryDevice->b;
printf("0x%X\n", b_test);
return 0;
}
310デフォルトの名無しさん (ワッチョイ 151a-unxX)
2020/02/04(火) 07:04:32.35ID:/MaewKoE0 >>309
aliasing rule 違反やアライメント違反の可能性などにより未定義動作なので 0x4433 になるとも限りません。
対象の環境を限定して何が起こっているか知りたいならアセンブリを出力してみるのがいいと思います。
aliasing rule 違反やアライメント違反の可能性などにより未定義動作なので 0x4433 になるとも限りません。
対象の環境を限定して何が起こっているか知りたいならアセンブリを出力してみるのがいいと思います。
311デフォルトの名無しさん (ワッチョイ 7d01-0Ybi)
2020/02/04(火) 07:14:24.84ID:j6eziqdx0 >>310
アセンブリ出力してみてみたんですが、そもそもなぜそのようになるのかが疑問です。
この場合、"0x11"がBYTE, "0x22, 0x33"がWORDのバイト配列を構造体で表したい場合どうすればいいのでしょうか?
アセンブリ出力してみてみたんですが、そもそもなぜそのようになるのかが疑問です。
この場合、"0x11"がBYTE, "0x22, 0x33"がWORDのバイト配列を構造体で表したい場合どうすればいいのでしょうか?
312デフォルトの名無しさん (ワッチョイ 89b3-x67y)
2020/02/04(火) 07:36:55.76ID:CGekWIL20 bは2バイトだから2バイト境界になるように詰め物をした
コンパイラやCPUの仕様
コンパイラやCPUの仕様
313デフォルトの名無しさん (ワッチョイ 89b3-x67y)
2020/02/04(火) 07:38:21.05ID:CGekWIL20 環境依存
#pragma pack とかコンパイルオプションで
変えられたりする
#pragma pack とかコンパイルオプションで
変えられたりする
314デフォルトの名無しさん (ワッチョイ e5f9-/fp1)
2020/02/04(火) 07:49:06.50ID:QC3PzamG0315デフォルトの名無しさん (ワッチョイ 7d01-0Ybi)
2020/02/04(火) 08:03:48.58ID:j6eziqdx0 #pragma pack(1)を使うことによって解決しました!
ありがとうございます。
今まで結構バイト配列を構造体に割り当てるってことをしてきましたが、気づきませんでした、、
ありがとうございます。
今まで結構バイト配列を構造体に割り当てるってことをしてきましたが、気づきませんでした、、
316デフォルトの名無しさん (ブーイモ MMc9-BGKF)
2020/02/04(火) 09:27:02.59ID:rp8heKByM できるかできないかアーキテクチャ環境依存だし、
できても遅くなる可能性もあるので注意
できても遅くなる可能性もあるので注意
317デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/04(火) 12:50:10.02ID:GNpMFwh2d そもそもunsigned charの配列をキャストしてる時点で
318デフォルトの名無しさん (ワッチョイ a612-i7CI)
2020/02/04(火) 13:04:48.75ID:6srsz/DQ0 unsigned charの配列をキャストしてる時点で何?
309は構造体の性質を調べる実験をしていて
そのために普段しないことをわざとやってるんだが
309は構造体の性質を調べる実験をしていて
そのために普段しないことをわざとやってるんだが
319デフォルトの名無しさん (アウアウウー Sa21-lBRq)
2020/02/04(火) 15:53:52.78ID:MHG3R7Tga ネットワークやファイルから読んだバイナリの塊を構造体に当て嵌めて解析を楽にするなんてことは、よくやる。
まあ、本当だったらバイナリから読んで構造体側にコピーするような関数を作った方が良いんだろうけどね。(またはPerlのunpackみたいなやつ)。
まあ、本当だったらバイナリから読んで構造体側にコピーするような関数を作った方が良いんだろうけどね。(またはPerlのunpackみたいなやつ)。
320デフォルトの名無しさん (アウアウウー Sa21-lBRq)
2020/02/04(火) 16:00:02.30ID:MHG3R7Tga そういえばsscanf()と似たような感じでバイナリとフォーマットと可変引数で代入先ポインタ並べて渡すとバイナリ側から読んで値入れてくれるようなPerlのunpack風な関数も作ろうと思えば作れるね。
321デフォルトの名無しさん (ワッチョイ b67c-unxX)
2020/02/04(火) 19:11:16.20ID:b7qwiVAD0322デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/04(火) 19:18:36.03ID:rvpdgwbCd コンパイラ依存や環境依存はビックフィールドだけじゃない
323デフォルトの名無しさん (スッップ Sd0a-x67y)
2020/02/04(火) 19:18:58.04ID:rvpdgwbCd ビットフィールド
324デフォルトの名無しさん (ワッチョイ 6aa5-OeZ9)
2020/02/04(火) 20:24:28.00ID:TWTPcweW0 あの大事件の裏にはこういうミスが隠されているのか……
325デフォルトの名無しさん (ワッチョイ 89b3-x67y)
2020/02/04(火) 20:31:06.36ID:CGekWIL20 コロン抜け?
326デフォルトの名無しさん (ワッチョイ 2a63-unxX)
2020/02/04(火) 21:26:03.56ID:lLuVC2X20 あれはFortranだろ
327デフォルトの名無しさん (アークセー Sxbd-nHCh)
2020/02/04(火) 22:02:12.09ID:xaJSTMSvx 僕のはリトルエンディアン
328デフォルトの名無しさん (ワッチョイ ea2c-KoMo)
2020/02/04(火) 23:14:03.74ID:6/2RTZHA0 漏れが、新幹線のチケット開発してた時には、ビットフィールドなどは使わなかった
全てのバイト内で、データの位置を決めて、ビット演算でやっていた
全てのバイト内で、データの位置を決めて、ビット演算でやっていた
329デフォルトの名無しさん (ササクッテロラ Sp0b-R1hy)
2020/02/05(水) 01:10:02.17ID:N1gPUNHxp 309のb_testの数値ってなぜ0x3344じゃないの?
それすらわからん
ここのスレレベル高いな
それすらわからん
ここのスレレベル高いな
330デフォルトの名無しさん (ワッチョイ 9f63-56gX)
2020/02/05(水) 01:21:18.13ID:wXMktV7+0 >>329
実行環境にもよると思います
実行環境にもよると思います
331デフォルトの名無しさん (ワッチョイ 9f63-56gX)
2020/02/05(水) 01:26:09.05ID:wXMktV7+0332デフォルトの名無しさん (アウウィフ FF9b-VM48)
2020/02/05(水) 19:45:58.28ID:2rKdW1EcF >>317 みたいなのも居る訳で
333デフォルトの名無しさん (スップ Sd3f-pfqa)
2020/02/05(水) 20:13:44.79ID:PZ/5vknBd >>317で何を言おうとしたかわからなかったか
334デフォルトの名無しさん (スップ Sd3f-pfqa)
2020/02/05(水) 20:18:11.07ID:PZ/5vknBd キャストしてる時点でアラインメントは
335デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/05(水) 23:49:56.70ID:V2ceD5vC0 どんだけかまって欲しいの。
336デフォルトの名無しさん (ワッチョイ 9f76-3u8R)
2020/02/06(木) 06:52:45.18ID:VEO7DUBt0 机上でガタガタ言うだけで満足するやつもいれば
実際に境界違反すると何が起きるのか自分の目で目撃したいやつもいるのさ
俺は後者に共感する
実際に境界違反すると何が起きるのか自分の目で目撃したいやつもいるのさ
俺は後者に共感する
337デフォルトの名無しさん (ワッチョイ b7b3-pfqa)
2020/02/06(木) 07:27:32.13ID:/W9iMVJD0 問題なくアクセス可能
例外発生
ズレてアクセス
性能以外の振舞いこのくらいは経験がある
他にあるかな?
ズレてアクセスされるCPUは
問題が分かりにくく厄介
例外発生
ズレてアクセス
性能以外の振舞いこのくらいは経験がある
他にあるかな?
ズレてアクセスされるCPUは
問題が分かりにくく厄介
338デフォルトの名無しさん (ワッチョイ b7b3-pfqa)
2020/02/06(木) 07:35:58.42ID:/W9iMVJD0 机上も重要
CPUのデータシートやコンパイラの説明書は当然見ないと
ズレてるスタックポインタをずらしたまま使う意味とかわからんでしょ
CPUのデータシートやコンパイラの説明書は当然見ないと
ズレてるスタックポインタをずらしたまま使う意味とかわからんでしょ
339デフォルトの名無しさん (ワッチョイ 9f76-3u8R)
2020/02/06(木) 08:03:27.48ID:VEO7DUBt0 机上がいらんとは言ってねえよ
何のための机上か考えろということだ
何のための机上か考えろということだ
340デフォルトの名無しさん (スップ Sd3f-4cqo)
2020/02/06(木) 08:08:22.76ID:h/xvakBVd ビットフィールドって環境依存なのか
分かりやすくて良いのに…
分かりやすくて良いのに…
341デフォルトの名無しさん (ワッチョイ b7b3-pfqa)
2020/02/06(木) 14:31:03.01ID:/W9iMVJD0 構造体自体環境依存
342デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/06(木) 19:36:45.30ID:OKCzzxK90 >>334
アライメントは何?
アライメントは何?
343デフォルトの名無しさん (ブーイモ MM1b-2t1T)
2020/02/06(木) 21:11:00.88ID:yuUE1QQrM 定義しただけじゃ構造体のアライメントを算出してくれないコンパイラがあるんだなー
union { ;static{ al,ah;ググってて遭遇ちょっと新鮮な驚き
実体を作らず、ポインタキャストでのみ利用してっとグチャゲチャなアドレスを引っ張ってくるみたいな
union { ;static{ al,ah;ググってて遭遇ちょっと新鮮な驚き
実体を作らず、ポインタキャストでのみ利用してっとグチャゲチャなアドレスを引っ張ってくるみたいな
344デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/07(金) 17:54:26.07ID:flffdOy2M AAと出力されて欲しいのですがなぜ4バイトになるのでしょうか
https://ideone.com/0v6mPr
https://ideone.com/0v6mPr
345デフォルトの名無しさん (ブーイモ MM1b-CFeS)
2020/02/07(金) 18:46:29.60ID:ZbQSjjsiM charを引数として渡すとintに格上げされる。
charがこの環境ではsigned charらしいので、0xAAはマイナス扱いされる。
intに格上げするときに符号拡張されて上位24ビットが1で埋められる。
charがこの環境ではsigned charらしいので、0xAAはマイナス扱いされる。
intに格上げするときに符号拡張されて上位24ビットが1で埋められる。
346デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/07(金) 19:07:15.66ID:OIss2gZ6M347デフォルトの名無しさん (ワッチョイ 9f63-56gX)
2020/02/07(金) 19:12:45.37ID:2Fs88HW00 こうする、とか
printf("%0X\n", *(unsigned char*)u);
printf("%0X\n", (unsigned char)u[0]);
printf("%0X\n", *(unsigned char*)u);
printf("%0X\n", (unsigned char)u[0]);
348デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/07(金) 19:54:01.80ID:loJf6Qnv0 なんもわかってなくて草
349デフォルトの名無しさん (ワッチョイ 571d-uqPE)
2020/02/07(金) 22:52:47.29ID:GxNDg+Fe0 実務経験1年で月収80万稼げるエンジニアになった理由
https://www.youtube.com/watch?v=DrbbyGsHQic
意識が低いエンジニアこそフリーランスになれ
https://www.youtube.com/watch?v=nSEaAJlgjbQ
フリーランスエンジニアの週3労働ってどんな感じ?
https://www.youtube.com/watch?v=8yjoDCdbzMc
ぼくがスキルのない社畜ならこうやって脱する
https://www.youtube.com/watch?v=aae8xxbUlMM
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
https://www.youtube.com/watch?v=U0OCGRVLFsM
プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説
https://www.youtube.com/watch?v=iBOeiSKBIW8
貧乏人こそ社会不適合者
https://www.youtube.com/watch?v=O3BT72BIBJI
元ド貧乏が教える】貧乏を抜け出すための2つの考え方
https://www.youtube.com/watch?v=IRrCgTy3ckc
より良いオファー貰ってるのに転職しないとか何考えてるの?
https://www.youtube.com/watch?v=i0J6uRhlj7o
https://www.youtube.com/watch?v=DrbbyGsHQic
意識が低いエンジニアこそフリーランスになれ
https://www.youtube.com/watch?v=nSEaAJlgjbQ
フリーランスエンジニアの週3労働ってどんな感じ?
https://www.youtube.com/watch?v=8yjoDCdbzMc
ぼくがスキルのない社畜ならこうやって脱する
https://www.youtube.com/watch?v=aae8xxbUlMM
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
https://www.youtube.com/watch?v=U0OCGRVLFsM
プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説
https://www.youtube.com/watch?v=iBOeiSKBIW8
貧乏人こそ社会不適合者
https://www.youtube.com/watch?v=O3BT72BIBJI
元ド貧乏が教える】貧乏を抜け出すための2つの考え方
https://www.youtube.com/watch?v=IRrCgTy3ckc
より良いオファー貰ってるのに転職しないとか何考えてるの?
https://www.youtube.com/watch?v=i0J6uRhlj7o
350デフォルトの名無しさん (ワッチョイ 9f52-m0mG)
2020/02/08(土) 01:58:07.50ID:uvgcwZ2m0 >>349
グロ
グロ
351デフォルトの名無しさん (ワッチョイ ff8f-mb93)
2020/02/10(月) 02:19:19.98ID:VQtOVB2v0 質問させてください。
ある.dllを作成するCのプロジェクトがあるのですが、開発環境をeclipseからvisualstudioへ移行しました。
このdllを使用する別のCのプロジェクトがあるのですが、eclipseでビルドしたdllは使用できていたのですが、visualstudioでビルドしたdllを使用しようとすると未解決エラーでビルドできなくなってしまいました。
作成した.libファイルをdumpbinで確認すると、eclipseでビルドしたものには関数名にいろいろ装飾(@とかcdeclとか引数とか)がついているのですが、visualstudioでビルドしたものには装飾がついていませんでした。
この違いが原因だとは思うのですが、visualstudioでも関数名に装飾がついたlibファイルを作成するにはどうすればよいのでしょうか?
ある.dllを作成するCのプロジェクトがあるのですが、開発環境をeclipseからvisualstudioへ移行しました。
このdllを使用する別のCのプロジェクトがあるのですが、eclipseでビルドしたdllは使用できていたのですが、visualstudioでビルドしたdllを使用しようとすると未解決エラーでビルドできなくなってしまいました。
作成した.libファイルをdumpbinで確認すると、eclipseでビルドしたものには関数名にいろいろ装飾(@とかcdeclとか引数とか)がついているのですが、visualstudioでビルドしたものには装飾がついていませんでした。
この違いが原因だとは思うのですが、visualstudioでも関数名に装飾がついたlibファイルを作成するにはどうすればよいのでしょうか?
352デフォルトの名無しさん (ワッチョイ ff8f-mb93)
2020/02/10(月) 03:14:01.48ID:VQtOVB2v0 >>351ですが、dllを使用する側のプログラムに「c++コードとしてコンパイル」を設定していたせいで読み込めなくなっていることがわかりました。
質問内容についても、CとC++の違いについて調べていけば良さそうとわかったので、自力で調べてみようと思います。
ありがとうございました。
質問内容についても、CとC++の違いについて調べていけば良さそうとわかったので、自力で調べてみようと思います。
ありがとうございました。
353デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/10(月) 16:25:12.95ID:TGcYvj29F 回答しようと思ったけど自己レスが付いていたので控えます。
自分で調べて下さい。良い心がけです。
自分で調べて下さい。良い心がけです。
354デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/10(月) 17:30:05.64ID:sdl18RcGM ゴミレスすんな
355デフォルトの名無しさん (ワッチョイ ff8f-mb93)
2020/02/11(火) 03:20:33.73ID:ShQqPfw10 >>352ですが解決しました。
c++ではマングリングが行われるためソースコード上の関数名とコンパイル後の関数名が異なる
一方cコードとしてコンパイルしたライブラリはソースコード上の関数名がそのままコンパイル後の関数名になる
この違いが原因で、c++コードとしてコンパイルされた呼び出し側プログラムではライブラリの関数を参照できなくなってしまっていました
解決策はc++側の関数宣言にextern "c"をつけること。もちろんヘッダーファイルなのでinclude文をextern "c"で囲んでしまうことでした。
たまに見かけるextern "c"ってこういうことだったんですね。お騒がせいたしました。
c++ではマングリングが行われるためソースコード上の関数名とコンパイル後の関数名が異なる
一方cコードとしてコンパイルしたライブラリはソースコード上の関数名がそのままコンパイル後の関数名になる
この違いが原因で、c++コードとしてコンパイルされた呼び出し側プログラムではライブラリの関数を参照できなくなってしまっていました
解決策はc++側の関数宣言にextern "c"をつけること。もちろんヘッダーファイルなのでinclude文をextern "c"で囲んでしまうことでした。
たまに見かけるextern "c"ってこういうことだったんですね。お騒がせいたしました。
356デフォルトの名無しさん (ワッチョイ 9fc5-Zca7)
2020/02/11(火) 07:41:04.94ID:KT61u4Oq0 マンデリングってえろいよね
357デフォルトの名無しさん (スプッッ Sd3f-pfqa)
2020/02/11(火) 07:47:01.07ID:lXsf9fbVd ポンデリング
358デフォルトの名無しさん (アウアウウー Sac3-Oc5d)
2020/02/14(金) 20:51:49.51ID:OVlsC64Va うまいよね
359デフォルトの名無しさん (ワッチョイ d2c5-GUQA)
2020/02/14(金) 20:52:25.46ID:x/oqiD9H0 おいC
おいCぺろぺろ
おいCぺろぺろ
360デフォルトの名無しさん (ワッチョイ 7276-bbsC)
2020/02/15(土) 07:15:19.12ID:AzMEQbXZ0361デフォルトの名無しさん (ラクッペ MM97-2rLz)
2020/02/15(土) 09:05:57.27ID:G4DtF/s2M 亀レスなうえにそのツッコミてw
362デフォルトの名無しさん (ワッチョイ d2c5-GUQA)
2020/02/15(土) 20:35:31.35ID:4O8uAQVX0 おれvalgrindと結婚するんだ
363デフォルトの名無しさん (ワッチョイ 12ad-ESCD)
2020/02/16(日) 16:37:12.41ID:e+hZCGM40 そしてフラグが立つと
364デフォルトの名無しさん (ワッチョイ df01-oncu)
2020/02/18(火) 02:06:40.26ID:tIozcGEh0 #if defined
365デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
2020/02/19(水) 12:02:30.63ID:/eqfvSaW0 C言語関係ないんだけど、並行処理と並列処理ってさ
論理的にシミュレートするのが並行処理で、物理的にパソコンを二台並べるのが並列処理だよね?
並行と並列と混合してる記事がネットに多くてもやもやするんだけど
論理的にシミュレートするのが並行処理で、物理的にパソコンを二台並べるのが並列処理だよね?
並行と並列と混合してる記事がネットに多くてもやもやするんだけど
366デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
2020/02/19(水) 12:03:31.56ID:cGULNOoWF 違う
367デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
2020/02/19(水) 12:11:00.93ID:/eqfvSaW0 >>366
どこら辺が間違ってます?
どこら辺が間違ってます?
368デフォルトの名無しさん (ワッチョイ 8f7c-Nz9x)
2020/02/19(水) 12:17:49.87ID:pLtxXQrp0 >>365
だいたいあってる
だいたいあってる
369デフォルトの名無しさん (ワッチョイ cff7-Nz9x)
2020/02/19(水) 12:21:53.17ID:26AgvMdu0370デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
2020/02/19(水) 13:02:11.34ID:/eqfvSaW0371デフォルトの名無しさん (スップ Sd1f-frFT)
2020/02/19(水) 13:08:12.27ID:S1r33x/od 厳密な境目なんて無いと思う
372デフォルトの名無しさん (ラクッペペ MM7f-zycr)
2020/02/19(水) 13:19:09.44ID:UeS2uiZKM つまり別々のcpuなら並列でそうでなければ平行ってこと?
373デフォルトの名無しさん (アウアウウー Sae7-xY2O)
2020/02/19(水) 14:13:39.42ID:7brGlgjia 二股かけるのが平行処理、3Pでやるのが並列処理であってる?
374デフォルトの名無しさん (ラクッペペ MM7f-zycr)
2020/02/19(水) 15:19:50.59ID:rnMFG2oOM >>373
二股は平行ですらないただのシングルスレッド処理じゃないか?
二股は平行ですらないただのシングルスレッド処理じゃないか?
375デフォルトの名無しさん (ブーイモ MMe7-C8wF)
2020/02/19(水) 17:01:59.51ID:9MnW04fvM いや、それぞれは相手を独占しているつもりなので、並行。(平行じゃないよ)
376デフォルトの名無しさん (ワッチョイ ff63-Nz9x)
2020/02/19(水) 17:04:57.92ID:xJfuBtj10 二股はデッドロックで行き詰まる
377デフォルトの名無しさん (ワッチョイ a34f-Nz9x)
2020/02/19(水) 20:05:25.47ID:ohbwSroQ0 並列と並行を明確に区別する流儀と、同時並行に実行されるなら全部並列、という流儀に別れていると思う。
378デフォルトの名無しさん (ワッチョイ ffc5-IdAT)
2020/02/19(水) 20:17:02.16ID:/eqfvSaW0 解釈が二通りあると?
それは問題では
議論できないじゃん
それは問題では
議論できないじゃん
379デフォルトの名無しさん (ワッチョイ cff7-Nz9x)
2020/02/19(水) 20:28:48.22ID:26AgvMdu0 性能的に全然違うんだが
時に数千倍も
時に数千倍も
380デフォルトの名無しさん (スップ Sd1f-frFT)
2020/02/19(水) 20:55:03.43ID:SK5VFny8d >>378
議論出来るように具体的に語れば良いんだよ
議論出来るように具体的に語れば良いんだよ
381デフォルトの名無しさん (スップ Sd1f-frFT)
2020/02/19(水) 20:57:19.86ID:SK5VFny8d そもそも同時かどうかなんて区別出来ない、区別しても意味がない事が多い
1コアで複数スレッド動くのはどっち?
とか
1コアで複数スレッド動くのはどっち?
とか
382デフォルトの名無しさん (ワッチョイ 6f8c-L8iH)
2020/02/19(水) 20:59:46.46ID:AEvYKzFT0 クラウドとクラスタ?
383デフォルトの名無しさん (ワッチョイ e31d-CqDg)
2020/02/19(水) 21:35:58.84ID:HsCXonKI0 【収益報告】実働月10hでも大金稼ぐ方法を解説【年収6,000万】
https://www.youtube.com/watch?v=o2ISWP-VZsw
年収3000万円以上になってはじめて理解すること【拝金からの脱却】
https://www.youtube.com/watch?v=nLEfFj2jL3A&t=182s
貧乏人に発言権とかないからwww
https://www.youtube.com/watch?v=BLGxunoO7X0&t=32s
【日常】実働20hで700万円稼ぐインフルエンサーの生活を公開
https://www.youtube.com/watch?v=YhX6Quus6lY&t=232s
皆正しいと思ってるけど実は間違ってる上司のクソ発言5選
https://www.youtube.com/watch?v=-M0BICeFSFg
月収700万円の僕が大学生のうちに身につけておきたかったスキル4選
https://www.youtube.com/watch?v=PZ2YYhCryAQ
https://www.youtube.com/watch?v=o2ISWP-VZsw
年収3000万円以上になってはじめて理解すること【拝金からの脱却】
https://www.youtube.com/watch?v=nLEfFj2jL3A&t=182s
貧乏人に発言権とかないからwww
https://www.youtube.com/watch?v=BLGxunoO7X0&t=32s
【日常】実働20hで700万円稼ぐインフルエンサーの生活を公開
https://www.youtube.com/watch?v=YhX6Quus6lY&t=232s
皆正しいと思ってるけど実は間違ってる上司のクソ発言5選
https://www.youtube.com/watch?v=-M0BICeFSFg
月収700万円の僕が大学生のうちに身につけておきたかったスキル4選
https://www.youtube.com/watch?v=PZ2YYhCryAQ
384デフォルトの名無しさん (ワッチョイ 83f9-IdAT)
2020/02/19(水) 22:29:58.40ID:fef8YCm90 並んで行くのが並行
列が並んでいるのが並列
なんでTSSは並行なの?並列じゃダメなの?
なんでデュアルコアは並列なの?並行じゃダメなの?
列が並んでいるのが並列
なんでTSSは並行なの?並列じゃダメなの?
なんでデュアルコアは並列なの?並行じゃダメなの?
385デフォルトの名無しさん (ワッチョイ cf8f-zycr)
2020/02/19(水) 23:45:11.13ID:i+U4mRBo0 とりあえずこういう時は日本語で考えるのやめようぜ。並列も並行も海外で生まれた概念を翻訳しただけなのでそのまま考えると帰って混乱する。
concurrentは同時。これは時間的な概念。
parallelは並存。これは物理的な概念。
つまり同時に処理するものはなんでもconcurrentな処理と言っていいわけだけど、その中でも処理するcpuも別れてるものがparallelな処理。
concurrentは同時。これは時間的な概念。
parallelは並存。これは物理的な概念。
つまり同時に処理するものはなんでもconcurrentな処理と言っていいわけだけど、その中でも処理するcpuも別れてるものがparallelな処理。
386デフォルトの名無しさん (ワッチョイ 83f9-IdAT)
2020/02/20(木) 10:12:07.92ID:znahik0W0 >>385
TSSはconcurrentだけどparallelじゃない(ミクロにみればconcurrentでもない)
デュアルコアはparallelだしconcurrentでもある
でいい?
「TSSは並行、デュアルコアは並列」の使い分けを肯定しないってことでいいのかな
TSSはconcurrentだけどparallelじゃない(ミクロにみればconcurrentでもない)
デュアルコアはparallelだしconcurrentでもある
でいい?
「TSSは並行、デュアルコアは並列」の使い分けを肯定しないってことでいいのかな
387デフォルトの名無しさん (ワッチョイ 7353-Nz9x)
2020/02/20(木) 10:53:44.93ID:yQ1/Uz2n0 TSS? 全然関係ないぞ
ユニプロセッサの場合CPUは並行処理で動くが
端末やチャネルは並列だ
マルチプロセッサでもTCASにCPUアフィニティがかかっている場合まであるしな
ユニプロセッサの場合CPUは並行処理で動くが
端末やチャネルは並列だ
マルチプロセッサでもTCASにCPUアフィニティがかかっている場合まであるしな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【熊本】園児に強制性交か 保育所勤務の男を逮捕「性的な欲望が我慢できなかった」警察は余罪を調べる [七波羅探題★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★3 [ぐれ★]
- 【サッカー】元日本代表DF冨安がオランダ1部アヤックスと大筋合意か 現地メディア報じる [久太郎★]
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- 高市早苗「竹島は日本領土」 [834922174]
- あくたんのおまんこって甘そうだよな🤤
- 🏡
- ヨドバシ店員「転売対策です。エヴァに出てくるロボットの名前をどれかひとつ言ってください」 [268718286]
- 「ちょっ…挿れるなら、コンドーム着けてよ💢」👈誰の声で再生された??? [839143615]
