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言語なら俺に聞け 146
https://mevius.5ch.net/test/read.cgi/tech/1525031257/
C言語なら俺に聞け 147
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
2018/08/16(木) 23:36:02.22ID:fOCSKLtw831デフォルトの名無しさん
2018/09/08(土) 10:29:17.43ID:Bduckbke >>829
ぷろぐらみんぐのまえににほんごをがんばれ
ぷろぐらみんぐのまえににほんごをがんばれ
832デフォルトの名無しさん
2018/09/08(土) 10:29:54.08ID:gGqp1fFu 業務に関係なく完全に知的好奇心からのmalloc実装の想像だったので、やっぱりglibc読んでみよう。
色々レスくれた人、ありがとう。
色々レスくれた人、ありがとう。
833デフォルトの名無しさん
2018/09/08(土) 10:38:55.04ID:LzkjeqyB ファイルシステムの管理領域が大きくなりすぎて、
4KB以下のページサイズには出来ない
4MBで千個、4GBで百万個のページを管理しないといけないから、
管理領域だけでも、100MB以上になる
だから、ページサイズをもっと大きい、2MBにすると、
2GBで千個、2TBで百万個のページを管理できるから、今のHDD の容量に対応できる
4KB以下のページサイズには出来ない
4MBで千個、4GBで百万個のページを管理しないといけないから、
管理領域だけでも、100MB以上になる
だから、ページサイズをもっと大きい、2MBにすると、
2GBで千個、2TBで百万個のページを管理できるから、今のHDD の容量に対応できる
834デフォルトの名無しさん
2018/09/08(土) 10:43:05.81ID:+lRq1NsW HDDだとシリンダ容量との親和性を考えないとね
だけどSSDが普及してる今どきの事情だとどうなんだろう
だけどSSDが普及してる今どきの事情だとどうなんだろう
835デフォルトの名無しさん
2018/09/08(土) 10:55:59.74ID:AeS6DVc8836デフォルトの名無しさん
2018/09/08(土) 10:58:20.45ID:cJyrgWby 一領域当たり100byte
837デフォルトの名無しさん
2018/09/08(土) 11:02:40.38ID:AeS6DVc8838デフォルトの名無しさん
2018/09/08(土) 11:31:35.27ID:Bduckbke >>833
つHugePage
つHugePage
839デフォルトの名無しさん
2018/09/08(土) 16:08:33.18ID:u7HqPj1f utf8procというUnicodeライブラリを使いたいのですが、C99に準拠してるかどうかって分かりますか?
「emulate C99 bool」というコメントがソースコードにあったのでおそらくC89あたりからサポートしていると思うんですが。
https://github.com/JuliaStrings/utf8proc
「emulate C99 bool」というコメントがソースコードにあったのでおそらくC89あたりからサポートしていると思うんですが。
https://github.com/JuliaStrings/utf8proc
840デフォルトの名無しさん
2018/09/08(土) 17:17:58.22ID:AMMRWQYD >>839
C99に準拠している
そのコメントの少し前に
「MSVC prior to 2013 lacked stdbool.h and inttypes.h」ってコメントがあるからWindowsの古い環境のためにboolとかを定義しているだけだね
C99に準拠している
そのコメントの少し前に
「MSVC prior to 2013 lacked stdbool.h and inttypes.h」ってコメントがあるからWindowsの古い環境のためにboolとかを定義しているだけだね
841デフォルトの名無しさん
2018/09/08(土) 18:36:43.66ID:LzkjeqyB OSのすべての機能を学びたいなら、ムック本の
Linuxエンジニア養成読本、第3版、2016
カーネル、起動処理、仮想記憶、
ファイルシステム、シェルスクリプトなど
ファイルシステム・管理領域の仕組みなどを読んで
Linuxエンジニア養成読本、第3版、2016
カーネル、起動処理、仮想記憶、
ファイルシステム、シェルスクリプトなど
ファイルシステム・管理領域の仕組みなどを読んで
842デフォルトの名無しさん
2018/09/08(土) 18:44:21.19ID:+lRq1NsW タネンバウム先生の本でしょ
すごい弟子を育てた伝説の師匠
すごい弟子を育てた伝説の師匠
843デフォルトの名無しさん
2018/09/08(土) 18:49:46.85ID:kiLcyFGE なにそれ、すごい面白そう!
アラサーだけどまだまだ青二才だしとっても勉強になります!
アラサーだけどまだまだ青二才だしとっても勉強になります!
844デフォルトの名無しさん
2018/09/08(土) 19:31:07.27ID:AeS6DVc8845デフォルトの名無しさん
2018/09/09(日) 05:27:49.39ID:pVz5FNGY846デフォルトの名無しさん
2018/09/09(日) 14:54:16.40ID:/XE3HNn6 ここのスレの人はValgrindは
使っているんだろうか。
メモリリークとか考えれば
ぜひ使うべきツールだと思う。
https://qiita.com/tjun/items/e9d2f7da3c94eb0240d8
使っているんだろうか。
メモリリークとか考えれば
ぜひ使うべきツールだと思う。
https://qiita.com/tjun/items/e9d2f7da3c94eb0240d8
847デフォルトの名無しさん
2018/09/09(日) 15:31:42.46ID:pIlBTOwT 便利だよね
ただ役に立ってるときはクソコードを触ってるときでもあると思う
ただ役に立ってるときはクソコードを触ってるときでもあると思う
848デフォルトの名無しさん
2018/09/09(日) 15:44:39.72ID:DwszjCT1 変数中の "1" のビット数を数える効率的方法ありますか?
aが32ビットとして
for (i = 0; i < 32; i++) {
j = j + a & 1;
a = a >> 1;
}
みたいに1ビットずつカウントするしかないでしょうか
あるいは、8bitとかで区切ってテーブルを引いて加算とかでしょうか(16ビットや32ビットのテーブルは現実的でないので)
aが32ビットとして
for (i = 0; i < 32; i++) {
j = j + a & 1;
a = a >> 1;
}
みたいに1ビットずつカウントするしかないでしょうか
あるいは、8bitとかで区切ってテーブルを引いて加算とかでしょうか(16ビットや32ビットのテーブルは現実的でないので)
849デフォルトの名無しさん
2018/09/09(日) 15:50:52.78ID:V1LakR3i850デフォルトの名無しさん
2018/09/09(日) 15:53:41.89ID:V1LakR3i a = (a & 0x55555555) + (a >> 1 & 0x55555555);
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a & 0x0F0F0F0F) + (a >> 4 & 0x0F0F0F0F);
a = (a & 0x00FF00FF) + (a >> 8 & 0x00FF00FF);
a = (a & 0x0000FFFF) + (a >> 16 & 0x0000FFFF);
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a & 0x0F0F0F0F) + (a >> 4 & 0x0F0F0F0F);
a = (a & 0x00FF00FF) + (a >> 8 & 0x00FF00FF);
a = (a & 0x0000FFFF) + (a >> 16 & 0x0000FFFF);
851デフォルトの名無しさん
2018/09/09(日) 16:07:17.49ID:TAQT5wBe 32ビットだしその書き方良くないと思います
852デフォルトの名無しさん
2018/09/09(日) 16:54:40.77ID:V1LakR3i https://ideone.com/FGqs1S
なにも問題ない
レスをコピペで普通に動く
アホがいちいち車輪の再発明するよりとりあえず↓コレ使っとけば間違いない
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
Built-in Function: int __builtin_popcount (unsigned int x)
Returns the number of 1-bits in x.
Built-in Function: int __builtin_popcountl (unsigned long)
Similar to __builtin_popcount, except the argument type is unsigned long.
Built-in Function: int __builtin_parityll (unsigned long long)
Similar to __builtin_parity, except the argument type is unsigned long long.
なにも問題ない
レスをコピペで普通に動く
アホがいちいち車輪の再発明するよりとりあえず↓コレ使っとけば間違いない
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
Built-in Function: int __builtin_popcount (unsigned int x)
Returns the number of 1-bits in x.
Built-in Function: int __builtin_popcountl (unsigned long)
Similar to __builtin_popcount, except the argument type is unsigned long.
Built-in Function: int __builtin_parityll (unsigned long long)
Similar to __builtin_parity, except the argument type is unsigned long long.
853デフォルトの名無しさん
2018/09/09(日) 17:39:09.00ID:/XE3HNn6854デフォルトの名無しさん
2018/09/09(日) 17:57:06.08ID:2r/FT+Vi >>850
うまいやり方だなぁ
うまいやり方だなぁ
855デフォルトの名無しさん
2018/09/09(日) 17:57:22.00ID:lGJ+2GvF856デフォルトの名無しさん
2018/09/09(日) 18:06:01.01ID:2r/FT+Vi >>850
少なくとも最後の行だけは
a = (a + (a >> 16)) & 0x0000FFFF;
の方がよさそう。
正確には最大 32 にしかならないから & 0x0000001F でもよさそうだし、値の上限を考えながらだと途中の行ももう少し演算を減らせたりするかも?
少なくとも最後の行だけは
a = (a + (a >> 16)) & 0x0000FFFF;
の方がよさそう。
正確には最大 32 にしかならないから & 0x0000001F でもよさそうだし、値の上限を考えながらだと途中の行ももう少し演算を減らせたりするかも?
857デフォルトの名無しさん
2018/09/09(日) 18:06:59.52ID:2r/FT+Vi >>856
0x0000003F だったw
0x0000003F だったw
858デフォルトの名無しさん
2018/09/09(日) 20:35:00.38ID:2r/FT+Vi >>850
a = (a & 0x55555555) + (a >> 1 & 0x55555555);
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a + (a >> 4)) & 0x0F0F0F0F0F;
a += a >> 8;
a = (a + (a >> 16)) & 0x3F;
でも同じ結果が得られた。
最適化無しだと 9% くらい速くなった。
a = (a & 0x55555555) + (a >> 1 & 0x55555555);
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a + (a >> 4)) & 0x0F0F0F0F0F;
a += a >> 8;
a = (a + (a >> 16)) & 0x3F;
でも同じ結果が得られた。
最適化無しだと 9% くらい速くなった。
859デフォルトの名無しさん
2018/09/09(日) 20:36:22.47ID:2r/FT+Vi860デフォルトの名無しさん
2018/09/09(日) 21:00:45.14ID:4c2hO8gX しね
861デフォルトの名無しさん
2018/09/09(日) 21:13:17.93ID:2r/FT+Vi a = (a & 0x55555555) + (a >> 1 & 0x55555555);
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a + (a >> 4)) & 0x0F0F0F0F;
a = (a * 0x101 * 0x10001) >> 24;
にしたら >>850 より 24% 速くなった(pentiumM linux)。
でも gcc の速度最適化を入れるとどれも変わらないね。
a = (a & 0x33333333) + (a >> 2 & 0x33333333);
a = (a + (a >> 4)) & 0x0F0F0F0F;
a = (a * 0x101 * 0x10001) >> 24;
にしたら >>850 より 24% 速くなった(pentiumM linux)。
でも gcc の速度最適化を入れるとどれも変わらないね。
862デフォルトの名無しさん
2018/09/09(日) 21:19:41.88ID:4c2hO8gX なに1人ではしゃいでんのこいつ。
863デフォルトの名無しさん
2018/09/09(日) 21:28:41.02ID:Vmegj8Hy CPUにそういう命令なかったっけ?
使うところでは割と使いそうだけど
使うところでは割と使いそうだけど
864デフォルトの名無しさん
2018/09/09(日) 21:45:09.16ID:5vkdTLeD865デフォルトの名無しさん
2018/09/09(日) 21:54:33.81ID:nMOWxsiw ああ、SSEにpopcntがあるね
866デフォルトの名無しさん
2018/09/09(日) 22:32:42.62ID:hCV1tk8e ポックント
867デフォルトの名無しさん
2018/09/10(月) 02:37:34.95ID:hUyLWeb6 ビットを数える・探すアルゴリズム
http://www.nminoru.jp/~nminoru/programming/bitcount.html
http://www.nminoru.jp/~nminoru/programming/bitcount.html
868デフォルトの名無しさん
2018/09/10(月) 10:36:25.17ID:o5mvkory ビット数の数えあげが欲しくなるのってパリティチェックで末尾付加したりするとき?
869デフォルトの名無しさん
2018/09/10(月) 10:44:53.73ID:cl7nWcjG ソケットみたいにフラグをビット管理してるときとかもほしくなるかな
870デフォルトの名無しさん
2018/09/10(月) 10:56:31.39ID:ddUFIgl6 符号とか暗号とかの世界ではしょっちゅう使うよ。
1の数で最適なアルゴリズムが変わるってケースもあるし、
暗号にサイドチャネル攻撃仕掛けるにはハミング距離とか重要。
1の数で最適なアルゴリズムが変わるってケースもあるし、
暗号にサイドチャネル攻撃仕掛けるにはハミング距離とか重要。
871デフォルトの名無しさん
2018/09/10(月) 11:27:01.59ID:o5mvkory872デフォルトの名無しさん
2018/09/10(月) 11:51:19.73ID:kNISuHie フラグは数えねえよな
性能重視でもなければビットフィールド使って読みやすくして欲しいわ
性能重視でもなければビットフィールド使って読みやすくして欲しいわ
873デフォルトの名無しさん
2018/09/10(月) 11:54:23.84ID:iqhXZjjt バラで書くから読みにくいのであって
関数にしておけば外から見た仕様は変わらない
関数にしておけば外から見た仕様は変わらない
874デフォルトの名無しさん
2018/09/10(月) 12:16:32.03ID:/R6yufrK 普通の通信でエラー検出以外の目的でビット数を数える必要性がわからない。
そんな特定のCPU以外は必ず無駄な計算が必要になる方式をなぜ使う?
そんな特定のCPU以外は必ず無駄な計算が必要になる方式をなぜ使う?
875デフォルトの名無しさん
2018/09/10(月) 12:46:33.22ID:x2RTnFiS >>874
エラー検出、訂正目的以外の通信のためにビットの数え上げするって誰かレスしてたっけ?
エラー検出、訂正目的以外の通信のためにビットの数え上げするって誰かレスしてたっけ?
877デフォルトの名無しさん
2018/09/10(月) 19:25:38.98ID:YAHzQjjo878デフォルトの名無しさん
2018/09/10(月) 19:32:05.94ID:WVFJrP31 Common Lisp にビットを数える関数があるけどcでも同様のものがあったようなゔ
879デフォルトの名無しさん
2018/09/10(月) 20:00:47.59ID:pZnz0RBT int a=0;
printf("%p" ,a);
printf("%p",&a);
同じアドレスが表示されると思っていたのですが、上下で違う数字が出力されました。
アドレスを表示するのはどちらが正しいのでしょうか?
よろしくお願いします。
printf("%p" ,a);
printf("%p",&a);
同じアドレスが表示されると思っていたのですが、上下で違う数字が出力されました。
アドレスを表示するのはどちらが正しいのでしょうか?
よろしくお願いします。
880さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/09/10(月) 20:06:35.73ID:NJC2soWX 下。
881デフォルトの名無しさん
2018/09/10(月) 20:07:47.31ID:WGo2tHWR882デフォルトの名無しさん
2018/09/10(月) 20:26:02.04ID:6MAzJtEj %p は ポインタを要求しているが
ポインタのサイズと intのサイズが違ってたら 鼻から悪魔
ポインタのサイズと intのサイズが違ってたら 鼻から悪魔
883デフォルトの名無しさん
2018/09/10(月) 20:28:01.62ID:pZnz0RBT884デフォルトの名無しさん
2018/09/10(月) 20:29:18.90ID:WGo2tHWR 天文学的な値が出るかも知れんね
885デフォルトの名無しさん
2018/09/10(月) 20:30:01.84ID:WGo2tHWR >>883
そうそう。そういうこと。
そうそう。そういうこと。
886デフォルトの名無しさん
2018/09/10(月) 20:43:33.30ID:l5sdNefZ887デフォルトの名無しさん
2018/09/10(月) 21:01:01.97ID:XzQQxj6r https://ideone.com/bsjclG
また、低学歴知恵遅れのクルクルパーがウソ書いてるわ。。。
64bitのアドレス空間を持ってて、intのサイズが32bitならちゃんと動くワケがないからな
また、低学歴知恵遅れのクルクルパーがウソ書いてるわ。。。
64bitのアドレス空間を持ってて、intのサイズが32bitならちゃんと動くワケがないからな
888デフォルトの名無しさん
2018/09/10(月) 21:07:42.09ID:XxqHEWUO >>887
どの書き込みに対してのレス?
どの書き込みに対してのレス?
889デフォルトの名無しさん
2018/09/10(月) 21:11:41.72ID:7zqNUn7X >>887
これまたチンケな知識でマウント取りに来たな w
これまたチンケな知識でマウント取りに来たな w
890デフォルトの名無しさん
2018/09/10(月) 21:12:59.71ID:XzQQxj6r ID:WGo2tHWR ← コイツにきまってんだろ
なあにが
そうそう。そういうこと。
だ
なにも知らないムクなヤツ相手に
低学歴知恵遅れの分際でテキトーなことばっかり書き込んでる
なあにが
そうそう。そういうこと。
だ
なにも知らないムクなヤツ相手に
低学歴知恵遅れの分際でテキトーなことばっかり書き込んでる
891デフォルトの名無しさん
2018/09/10(月) 21:16:56.02ID:XxqHEWUO ん?これのこと?
> printf() に a の内容である 0 を渡している
> printf() に a の内容である 0 を渡している
892デフォルトの名無しさん
2018/09/10(月) 21:19:04.26ID:6SoA/END こんなにでかい釣り針だと
鯨が釣れるかも
鯨が釣れるかも
893デフォルトの名無しさん
2018/09/10(月) 21:19:36.92ID:XzQQxj6r894デフォルトの名無しさん
2018/09/10(月) 21:21:51.21ID:XxqHEWUO あれ?
int *a;
int b=0;
a=&b;
printf("%p",a);
って別に正しくね?
int *a;
int b=0;
a=&b;
printf("%p",a);
って別に正しくね?
895デフォルトの名無しさん
2018/09/10(月) 21:22:53.59ID:XzQQxj6r896デフォルトの名無しさん
2018/09/10(月) 21:25:52.44ID:XxqHEWUO ううむ、俺にはaは64ビット環境だと64ビット長に見えるのだが違うのか?
897デフォルトの名無しさん
2018/09/10(月) 21:27:36.20ID:XzQQxj6r で、処理結果みた?
で、処理結果みた?
で、処理結果みた?
で、処理結果みた?
で、処理結果みた?
898デフォルトの名無しさん
2018/09/10(月) 21:29:43.88ID:XxqHEWUO おたくのサンプルは64ビットアドレスをintにキャストしちゃてるやん。そりゃ実行結果違うわ。
899デフォルトの名無しさん
2018/09/10(月) 21:31:35.87ID:XzQQxj6r https://ideone.com/PGwK6j
キャストはずしたったぞ
当然、結果はかわらない
やっぱりなこの板は低学歴知恵遅れしかいない
この程度のこともわからずにいきってレスしてるワケだからな
キャストはずしたったぞ
当然、結果はかわらない
やっぱりなこの板は低学歴知恵遅れしかいない
この程度のこともわからずにいきってレスしてるワケだからな
900デフォルトの名無しさん
2018/09/10(月) 21:31:51.59ID:6MAzJtEj たまたま 足りない分 0 を引っ張ってきてるけど(レジスタで渡ったから?)
スタックに積んでるリターンアドレスの一部から足りないのを補ってると、もっとわけわかな数値に
未定儀の挙動を推測すすのもまたオツなもの か
スタックに積んでるリターンアドレスの一部から足りないのを補ってると、もっとわけわかな数値に
未定儀の挙動を推測すすのもまたオツなもの か
901デフォルトの名無しさん
2018/09/10(月) 21:32:51.39ID:XxqHEWUO いやいや、883のaはポインタなんだってw
なんでintに入れちゃうのw
なんでintに入れちゃうのw
902デフォルトの名無しさん
2018/09/10(月) 21:33:36.29ID:XzQQxj6r903デフォルトの名無しさん
2018/09/10(月) 21:40:38.56ID:lZ/O7dtJ 半角クンていつも周りを見ずに自分の思い込みだけでレスしちゃって誤り訂正できないから、恥ずかしい(*/□\*)
直進しかできない目隠しされたイノシシみたい
直進しかできない目隠しされたイノシシみたい
904デフォルトの名無しさん
2018/09/10(月) 21:42:09.42ID:XzQQxj6r なにが間違いなわけ
指摘してみ
一切間違ったこと書いてないからな
低学歴知恵遅れはそもそも認知能力に問題がある
指摘してみ
一切間違ったこと書いてないからな
低学歴知恵遅れはそもそも認知能力に問題がある
905デフォルトの名無しさん
2018/09/10(月) 21:47:36.63ID:XxqHEWUO なぜ64ビットポインタをintに入れたの?
883ではそんなこと一切してないんだけど。
逆に
>printf() に a の内容である 0 を渡している
は整数リテラルがintなのに%pで受けてるので、64ビット環境なら4バイト分スタックのゴミを拾ってきそうだけど。
883ではそんなこと一切してないんだけど。
逆に
>printf() に a の内容である 0 を渡している
は整数リテラルがintなのに%pで受けてるので、64ビット環境なら4バイト分スタックのゴミを拾ってきそうだけど。
906デフォルトの名無しさん
2018/09/10(月) 21:48:46.40ID:XzQQxj6r はずかしくなって
こっち側にこようとしても
もう手遅れだからな
こっち側にこようとしても
もう手遅れだからな
907デフォルトの名無しさん
2018/09/10(月) 21:50:57.43ID:XxqHEWUO なんだ、結局はaがポインタだってことを見逃しただけかよw
908デフォルトの名無しさん
2018/09/10(月) 21:55:18.07ID:cYYSBBs1 >>906
つ鏡
つ鏡
910デフォルトの名無しさん
2018/09/11(火) 06:35:01.60ID:pvBPsgEg >>909
半角野郎が数行のプログラムも理解できないくせに自分で改竄したコードが動かねぇって騒いでただけ。
半角野郎こそ低学歴知恵遅れクルクルパーで認知能力とオツムに相当な問題があるってことが証明されただけなので気にするな。
本人は顔真っ赤にして逃げたみたいだけど。
半角野郎が数行のプログラムも理解できないくせに自分で改竄したコードが動かねぇって騒いでただけ。
半角野郎こそ低学歴知恵遅れクルクルパーで認知能力とオツムに相当な問題があるってことが証明されただけなので気にするな。
本人は顔真っ赤にして逃げたみたいだけど。
911デフォルトの名無しさん
2018/09/11(火) 07:57:47.34ID:2zsIBj+S912デフォルトの名無しさん
2018/09/11(火) 08:11:06.15ID:NBDkJ3+C >>911
半角クンのレスは、5%の真実と15%の間違い・思い込みと80%の繰り言・罵詈雑言でできてるからね。まっとうに読む価値はない。
半角クンのレスは、5%の真実と15%の間違い・思い込みと80%の繰り言・罵詈雑言でできてるからね。まっとうに読む価値はない。
913デフォルトの名無しさん
2018/09/11(火) 09:54:24.68ID:oX9GyHv1 まれにいいこと言う
850とか
850とか
914デフォルトの名無しさん
2018/09/11(火) 10:00:02.68ID:R1B4IsqD 釣り針が大きすぎて、クジラじゃないと釣れない
915デフォルトの名無しさん
2018/09/11(火) 11:44:57.89ID:zLtJmO+E musl-libcのiconvコマンドの本体ってここを見ればいいよね?
https://git.musl-libc.org/cgit/musl/tree/src/locale/iconv.c
https://git.musl-libc.org/cgit/musl/tree/src/locale/iconv.c
916デフォルトの名無しさん
2018/09/11(火) 20:05:08.62ID:YMBQMGAL 処理系って何?
cpuかコンパイラの事かなと思ってるんだけど。
間違ってる?
cpuかコンパイラの事かなと思ってるんだけど。
間違ってる?
917デフォルトの名無しさん
2018/09/11(火) 20:29:34.46ID:5X7KAgIC 処理系は、翻訳環境と、実行環境に大別される
翻訳環境とはコンパイラ等開発ツールを実行する環境
実行環境とはコンパイル結果のバイナリが稼働する環境、客先と言ってもよい
翻訳環境とはコンパイラ等開発ツールを実行する環境
実行環境とはコンパイル結果のバイナリが稼働する環境、客先と言ってもよい
918デフォルトの名無しさん
2018/09/11(火) 20:36:50.64ID:YMBQMGAL919デフォルトの名無しさん
2018/09/11(火) 20:45:37.73ID:5X7KAgIC cpuだけじゃないメモリが実装されているアドレス
i/oが実装されているアドレス
osの挙動
など様々な要因が絡む
i/oが実装されているアドレス
osの挙動
など様々な要因が絡む
920デフォルトの名無しさん
2018/09/11(火) 21:01:49.97ID:LZbcaZ/B CPUが同じであっても、
Windowsでは動かせてもmacOSでは動かないとか
同じWindowsでも、64bit環境では動いても32bit環境だと動かないとか
Windowsでは動かせてもmacOSでは動かないとか
同じWindowsでも、64bit環境では動いても32bit環境だと動かないとか
921デフォルトの名無しさん
2018/09/11(火) 21:12:52.13ID:ShO/owiX 半角くん、いたの?
lynx で見てるから何言ってるかわからない。
lynx で見てるから何言ってるかわからない。
922デフォルトの名無しさん
2018/09/11(火) 21:17:38.28ID:pVzZZpUQ ゴミPC早く捨てろ
923デフォルトの名無しさん
2018/09/11(火) 21:28:47.48ID:zLtJmO+E 処理系ってC99に関してはJISで定義されてたよね。
924デフォルトの名無しさん
2018/09/13(木) 21:21:47.72ID:1sKEH3Wo 昔の教科書には
C言語の原稿
↓プリプロセッサ
マクロ・ヘッダファイルが展開された原稿
↓翻訳機
アセンブリ言語の原稿
↓アセンブラ
機械語
↓リンカ
実行可能ファイル
っていう図がよく描かれてて,今でもWebを検索するとよく見掛けるんだけど,ほんとに今現在のコンパイラってこういうことやってんの?
gccやclangって,もはやC言語の原稿からほぼほぼ直接に実行可能ファイルを生成してるんじゃない?
さすがにプリプロセッサくらいはあるかもしれんが。
C言語の原稿
↓プリプロセッサ
マクロ・ヘッダファイルが展開された原稿
↓翻訳機
アセンブリ言語の原稿
↓アセンブラ
機械語
↓リンカ
実行可能ファイル
っていう図がよく描かれてて,今でもWebを検索するとよく見掛けるんだけど,ほんとに今現在のコンパイラってこういうことやってんの?
gccやclangって,もはやC言語の原稿からほぼほぼ直接に実行可能ファイルを生成してるんじゃない?
さすがにプリプロセッサくらいはあるかもしれんが。
925デフォルトの名無しさん
2018/09/13(木) 21:32:27.37ID:CY4XgXEU -vつけて起動してみ。
プリプロcppはcc1に統合された。
gccだと、cc1とかasとかcollect2とかが動いてるはず。
clangはデフォルトだとasなしかも。
プリプロcppはcc1に統合された。
gccだと、cc1とかasとかcollect2とかが動いてるはず。
clangはデフォルトだとasなしかも。
926デフォルトの名無しさん
2018/09/13(木) 21:54:33.53ID:1sKEH3Wo >>925
あざす
やっぱり減ってはいるんだな。
結構ああいう図を見掛けるんで,なんか(ほんとにこんな段階踏んでんのか?)ってモヤモヤしてた。
素人考えだが,あんな風に幾つも重ねてビルドしてたら最適化しにくい気がするし。
あざす
やっぱり減ってはいるんだな。
結構ああいう図を見掛けるんで,なんか(ほんとにこんな段階踏んでんのか?)ってモヤモヤしてた。
素人考えだが,あんな風に幾つも重ねてビルドしてたら最適化しにくい気がするし。
927デフォルトの名無しさん
2018/09/13(木) 22:33:23.35ID:brIJUf4C 処理としてはわかれてるよそりゃ
928デフォルトの名無しさん
2018/09/13(木) 23:18:13.03ID:1sKEH3Wo え そうなん
と思って空のファイルをgcc -vで処理したら
たしかにある程度進んでリンカの段階で エラーになったわ。
と思って空のファイルをgcc -vで処理したら
たしかにある程度進んでリンカの段階で エラーになったわ。
929デフォルトの名無しさん
2018/09/13(木) 23:28:49.69ID:yqnwLH2V bash-4.3$ gcc -v -o aho aho.c ←開始
/usr/lib/gcc/i586-slackware-linux/5.3.0/specs から spec を読み込んでいます
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i586-slackware-linux/5.3.0/lto-wrapper
ターゲット: i586-slackware-linux
configure 設定: ../gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib --mandir
=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-langu
ages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checkin
g=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/
site-packages --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=gcc4-com
patible --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --
enable-lto --disable-install-libiberty --with-gnu-ld --verbose --enable-java-ho
me --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jv
m-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=
/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gt
k --disable-gtktest --with-arch=i586 --target=i586-slackware-linux --build=i586
-slackware-linux --host=i586-slackware-linux
スレッドモデル: posix
gcc バージョン 5.3.0 (GCC)
(-続く-)
/usr/lib/gcc/i586-slackware-linux/5.3.0/specs から spec を読み込んでいます
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i586-slackware-linux/5.3.0/lto-wrapper
ターゲット: i586-slackware-linux
configure 設定: ../gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib --mandir
=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-langu
ages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checkin
g=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/
site-packages --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=gcc4-com
patible --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --
enable-lto --disable-install-libiberty --with-gnu-ld --verbose --enable-java-ho
me --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jv
m-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=
/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gt
k --disable-gtktest --with-arch=i586 --target=i586-slackware-linux --build=i586
-slackware-linux --host=i586-slackware-linux
スレッドモデル: posix
gcc バージョン 5.3.0 (GCC)
(-続く-)
930デフォルトの名無しさん
2018/09/13(木) 23:29:23.47ID:yqnwLH2V (-続き-)
COLLECT_GCC_OPTIONS='-v' '-o' 'aho' '-mtune=pentium' '-march=i586'
/usr/libexec/gcc/i586-slackware-linux/5.3.0/cc1 -quiet -v aho.c -quiet -dumpba
se aho.c -mtune=pentium -march=i586 -auxbase aho -version -o /tmp/ccVi37md.s ← @プリプロセス
GNU C11 (GCC) version 5.3.0 (i586-slackware-linux)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC
version 1.0.3
warning: GMP header version 6.1.0 differs from library version 6.1.2.
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=62246
存在しないディレクトリ "/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i58
6-slackware-linux/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/i586-slackware-linux/5.3.0/include
/usr/local/include
/usr/lib/gcc/i586-slackware-linux/5.3.0/include-fixed
/usr/include
探索リストの終わりです。
(-続く-)
COLLECT_GCC_OPTIONS='-v' '-o' 'aho' '-mtune=pentium' '-march=i586'
/usr/libexec/gcc/i586-slackware-linux/5.3.0/cc1 -quiet -v aho.c -quiet -dumpba
se aho.c -mtune=pentium -march=i586 -auxbase aho -version -o /tmp/ccVi37md.s ← @プリプロセス
GNU C11 (GCC) version 5.3.0 (i586-slackware-linux)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC
version 1.0.3
warning: GMP header version 6.1.0 differs from library version 6.1.2.
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=62246
存在しないディレクトリ "/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i58
6-slackware-linux/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/i586-slackware-linux/5.3.0/include
/usr/local/include
/usr/lib/gcc/i586-slackware-linux/5.3.0/include-fixed
/usr/include
探索リストの終わりです。
(-続く-)
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- ブタをぶったたく
- とうとう袖なしジージャン買ったったwww
- こんな自転車乗ってたやつがいたら?
- 【画像】童貞は絶ッッッ対"4"を選ぶバレー部J Kが寮でパンパンの集合写真見つけちゃったwwwwwwwwwwwwww [904880432]
