!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言語なら俺に聞け 155
https://mevius.5ch.net/test/read.cgi/tech/1589120427/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 156
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
2020/09/28(月) 14:41:30.00ID:QxfbhGyV0710デフォルトの名無しさん (ワッチョイ 6d52-k294)
2021/02/01(月) 08:04:18.96ID:SoQHgLGL0 64bit整数型がない環境があるんだから
確実に64bit以上なんて無理
確実に64bit以上なんて無理
711デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 08:15:50.49ID:v6ebtUL10 sizeof max_value
gcc, clang: 8
cl: 4
gcc, clang: 8
cl: 4
712デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/02/01(月) 08:27:26.16ID:9cKOvUYE0 >>710
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
713デフォルトの名無しさん (ワッチョイ 8d7f-con+)
2021/02/01(月) 09:03:50.04ID:5yr9aQzL0 Cのenumはマクロと大して変わらんのだから、マクロで代用するとか
714デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 09:11:58.71ID:v6ebtUL10 マクロに代わるべく作られたenumがマクロで代用されるとは
無様な・・・
無様な・・・
715デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 09:18:04.19ID:v6ebtUL10 6.7.2.2 Enumeration specifiers
3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted.
6.7.2.2 列挙型指定子
意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。
はっきり、intと書いてあるね
long longになる余地は全くない
3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted.
6.7.2.2 列挙型指定子
意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。
はっきり、intと書いてあるね
long longになる余地は全くない
716デフォルトの名無しさん (アウアウウー Sa21-8ou+)
2021/02/01(月) 11:57:56.06ID:vkxM9MCda intとlong longが同一の可能性は残る
まぁ普通ではないが
素直にC++でenum classにするのがいいのでは
まぁ普通ではないが
素直にC++でenum classにするのがいいのでは
717デフォルトの名無しさん (エムゾネ FF0a-qCTK)
2021/02/01(月) 14:28:14.54ID:fos4FOVOF enum と enum class って紛らわしいよね
718デフォルトの名無しさん (ワッチョイ ad45-unxX)
2021/02/01(月) 17:41:32.38ID:v6ebtUL10 enum classは関係ない
enum-baseだ
enum-baseだ
719デフォルトの名無しさん (アウアウウー Sa21-8ou+)
2021/02/01(月) 19:37:32.66ID:vkxM9MCda720デフォルトの名無しさん (ワッチョイ 7d4f-RNyz)
2021/02/01(月) 21:43:21.53ID:9cKOvUYE0 >>715
なるほど、ありがとう。
なるほど、ありがとう。
721デフォルトの名無しさん (ワッチョイ 9e8c-bY9K)
2021/02/02(火) 06:19:12.09ID:wjKGtX300 enumはステート制御で重宝する。
722デフォルトの名無しさん (ワッチョイ 5dd2-merL)
2021/02/02(火) 15:29:55.49ID:gtWVIswm0 質問です。__lsan_disableが期待通りに動きません。
サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will
be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。
しかし__lsan_enable〜__lsan_do_leak_checkもリークチェックされます。原因が分かりません。
#include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable();
fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1);
}
int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0);
for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1);
fprintf(stderr, "malloc\n"); } return 0;}
よろしくお願いいたします
サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will
be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。
しかし__lsan_enable〜__lsan_do_leak_checkもリークチェックされます。原因が分かりません。
#include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable();
fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1);
}
int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0);
for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1);
fprintf(stderr, "malloc\n"); } return 0;}
よろしくお願いいたします
723デフォルトの名無しさん (ワッチョイ ea01-s+/V)
2021/02/03(水) 08:08:40.40ID:3ZiqWZ4T0 >>712
処理系依存
処理系依存
724デフォルトの名無しさん (ワッチョイ a902-rtUD)
2021/02/04(木) 11:24:59.43ID:P1e/f4pz0 テキストファイルを読み込む場合、主にfgetsやfgetcでやる方法があると思うのですが調べてみるとmmapを使う方法もあるようなのですがどれを使うのが良いんですかね?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
725はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e3e-unxX)
2021/02/04(木) 12:15:35.04ID:ttCVH4wp0 >>724
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
726デフォルトの名無しさん (ワッチョイ a902-rtUD)
2021/02/04(木) 13:31:56.12ID:P1e/f4pz0727はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e3e-unxX)
2021/02/04(木) 13:43:25.23ID:ttCVH4wp0728デフォルトの名無しさん (スップ Sdea-k294)
2021/02/04(木) 14:20:09.93ID:jgksMTX2d C言語スレで
せいぜい数メガと言っちゃう感覚
せいぜい数メガと言っちゃう感覚
729デフォルトの名無しさん (ワッチョイ 6aa5-eHoJ)
2021/02/04(木) 14:24:26.67ID:xGlwnT6u0 もう21世紀だからな
ここから先は1GBのテキストファイルが普通になる
ここから先は1GBのテキストファイルが普通になる
730デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/05(金) 07:55:44.29ID:I+zADhcc0 >>728
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
731デフォルトの名無しさん (ワッチョイ 5752-IB1A)
2021/02/05(金) 08:01:49.33ID:XbPEadHi0 せいぜい数メガと言えるようなリッチな環境で
C言語でアプリを書く方が珍しいだろ
C言語でアプリを書く方が珍しいだろ
732デフォルトの名無しさん (ワッチョイ 9f52-xUEw)
2021/02/05(金) 08:20:44.95ID:JqQJ/dMo0733デフォルトの名無しさん (ワッチョイ 5752-IB1A)
2021/02/05(金) 08:32:27.83ID:XbPEadHi0734デフォルトの名無しさん (ワッチョイ 17d2-JWMU)
2021/02/05(金) 08:42:07.98ID:oeXhrntJ0 「決めつけ」はバグとセキュリティホールの元。
735デフォルトの名無しさん (スプッッ Sdcb-aPA7)
2021/02/05(金) 09:02:30.99ID:AjJLCZmld スパコンのOSはCで書かれている
736デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/05(金) 09:20:14.53ID:I+zADhcc0737デフォルトの名無しさん (スップ Sd3f-IB1A)
2021/02/05(金) 12:39:42.10ID:1XmQmKI8d738デフォルトの名無しさん (ドコグロ MMdf-pSMo)
2021/02/05(金) 12:52:09.08ID:AV0Gp17OM >>737
珍しくないと言うなら実例をあげればいいだけ
珍しくないと言うなら実例をあげればいいだけ
739デフォルトの名無しさん (ワッチョイ 9fad-MLSE)
2021/02/06(土) 10:12:48.76ID:DFt8vUVO0 mmapってUNIX系OSだけでは?他にもあるかも知れないが互換ライブラリ経由でそのOS固有の同機能のやつ呼んでたりしない?(それで良いなら良いんだが)
740デフォルトの名無しさん (アウウィフ FF9b-6HDI)
2021/02/06(土) 10:51:00.80ID:PohEB++tF 対象をhtmlに限定したのが敗因
741デフォルトの名無しさん (ガラプー KK4f-o9Gs)
2021/02/06(土) 11:26:44.70ID:EjDQT0l8K742デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/06(土) 11:45:50.67ID:zn5WrP4C0 >>739
何が問題なのかよくわからんが?
何が問題なのかよくわからんが?
743デフォルトの名無しさん (ワッチョイ 6f8c-w83u)
2021/02/22(月) 07:04:45.29ID:Xbe4DE+80 どうやったらループを小さくしたり無くしたり出来るのか教えてほしい。
744デフォルトの名無しさん (ワントンキン MM9f-H4LT)
2021/02/22(月) 08:02:42.93ID:NYs90WT8M べた書き?
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
745デフォルトの名無しさん (ワッチョイ b325-Hwf9)
2021/02/22(月) 17:21:30.68ID:iIDQLaUs0 標準ライブラリにある処理はなるべく標準ライブラリのを使うとか
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
746デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 02:48:11.51ID:VIkkm8/qd747デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 03:04:42.97ID:VIkkm8/qd >>743
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点もある
mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝
なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点もある
mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝
なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
748デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 03:15:27.68ID:VIkkm8/qd いや今書いたのも改めて並べるとmodに慣れていと1分くらい考えるか…
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス
ネストしたループを全てワンライナーで書けるFortranが羨ましい
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス
ネストしたループを全てワンライナーで書けるFortranが羨ましい
749デフォルトの名無しさん (ワッチョイ 93da-W5tZ)
2021/02/23(火) 03:42:44.91ID:1ia+Vnu00 divもmodもクソ遅いと思うんですがそれは
750デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 04:31:33.75ID:VIkkm8/qd751デフォルトの名無しさん (スフッ Sd1f-4oy0)
2021/02/23(火) 04:35:35.49ID:VIkkm8/qd だからといってわざわざ速い最適化divmod拾ってくるまでの価値も無いし、つまらんハックか
猛省
猛省
752デフォルトの名無しさん (ガラプー KKa7-b/Iq)
2021/02/23(火) 08:24:27.89ID:NtDnGIIYK まあ定数の割り算は掛け算で実装するよな
753751 (スフッ Sd1f-4oy0)
2021/02/23(火) 12:00:01.73ID:EYNng8zFd >>752
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
754デフォルトの名無しさん (ワッチョイ 93da-W5tZ)
2021/02/23(火) 12:21:23.56ID:1ia+Vnu00 目安でしかないがx86-64ではmulと比べてdivやmodはレイテンシ2倍どころではない場合が多い
https://www.agner.org/optimize/instruction_tables.pdf
パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
https://www.agner.org/optimize/instruction_tables.pdf
パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
755デフォルトの名無しさん (ワッチョイ 6f8c-Dcdc)
2021/02/24(水) 15:46:51.63ID:/D2VYVJH0 ソフトウェア割り込みプログラムは書けるのか
756デフォルトの名無しさん (ワッチョイ a301-GD1z)
2021/02/25(木) 06:12:34.32ID:R7WVwVFS0 >>755
インラインアセンブラ必須かな
インラインアセンブラ必須かな
757デフォルトの名無しさん (ワッチョイ ff01-aOo0)
2021/02/25(木) 07:07:20.11ID:bxBNuN1v0 環境次第
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
758デフォルトの名無しさん (ワッチョイ a301-GD1z)
2021/02/25(木) 09:55:57.73ID:R7WVwVFS0 >>757
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
759デフォルトの名無しさん (ワッチョイ a32f-2wuD)
2021/02/25(木) 19:11:28.17ID:k63j55rm0 VCで作った実行ファイルを
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
760デフォルトの名無しさん (ドコグロ MMdf-jbj7)
2021/02/25(木) 19:17:09.21ID:JLHf2OjdM761デフォルトの名無しさん (ワッチョイ a301-VKJl)
2021/02/25(木) 20:00:24.23ID:MOr3wCfr0 ファイル名変えておいとくだけなんとちゃうの?
762デフォルトの名無しさん (ワッチョイ 8363-W5tZ)
2021/02/25(木) 20:06:31.57ID:ZW7ncKwI0 Windows系サーバーだったら、
実行ファイルc.exeをc.cgiにリネームすれば動くはず
実行ファイルc.exeをc.cgiにリネームすれば動くはず
763デフォルトの名無しさん (ガラプー KKa7-b/Iq)
2021/02/25(木) 20:47:45.34ID:yh+1kBamK764デフォルトの名無しさん (ワッチョイ cb01-jB1a)
2021/02/26(金) 03:45:13.89ID:5d4w5oMJ0 >>763
スレチ
スレチ
765デフォルトの名無しさん (ガラプー KKbb-sT37)
2021/02/26(金) 06:57:40.05ID:eCf8RuSVK //何だよ俺のせいかいw
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
766デフォルトの名無しさん (スップ Sd8a-m+7K)
2021/02/26(金) 08:02:43.73ID:M2eccXrmd renameってstdio.hだっけ?
767デフォルトの名無しさん (ワッチョイ 0705-DFeu)
2021/02/26(金) 09:51:30.74ID:31AFaQsJ0 >>766
stdioじゃよ
stdioじゃよ
768デフォルトの名無しさん (スップ Sd8a-m+7K)
2021/02/26(金) 12:12:32.73ID:M2eccXrmd げ、本当だ
769デフォルトの名無しさん (アウアウウー Sac5-a/3A)
2021/03/15(月) 16:52:25.12ID:XyNDIUjTa すみません、質問させてください
exturn FUNC(void, define1) 関数名(void)
ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
exturn FUNC(void, define1) 関数名(void)
ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
770デフォルトの名無しさん (ブーイモ MM76-9YAs)
2021/03/15(月) 17:06:32.77ID:Db4OPSpGM >>769
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
771デフォルトの名無しさん (アウアウウー Sac5-a/3A)
2021/03/15(月) 17:07:39.42ID:XyNDIUjTa772デフォルトの名無しさん (ワッチョイ 8569-9blg)
2021/03/16(火) 08:22:50.63ID:7emEuadh0 Cの文法内に収まる FUNC() って
一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt
ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt
ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
773デフォルトの名無しさん (ブーイモ MMcb-T0kI)
2021/03/19(金) 19:09:51.97ID:mKZFPhjYM ret opt の記述順を変えなきゃなんないコンパイラ併用でもしてなきゃ
必然性無いよな
必然性無いよな
774デフォルトの名無しさん (ワッチョイ 9763-On6t)
2021/04/25(日) 18:24:42.50ID:1rqnmNJD0 VS2019を使用してます。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
775デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/25(日) 18:43:09.76ID:f5CNtQYv0 C++ hashクラスを使う
C 自作する
スキな道を歩もう
C 自作する
スキな道を歩もう
776デフォルトの名無しさん (ブーイモ MMed-t/cM)
2021/04/25(日) 19:49:36.36ID:bD1toMMoM Cにはない
多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽
hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽
hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
777デフォルトの名無しさん (ワッチョイ 9763-On6t)
2021/04/25(日) 20:00:40.49ID:1rqnmNJD0 >>775-776
ありがとうございます。
ありがとうございます。
778デフォルトの名無しさん (ワッチョイ 9e90-On6t)
2021/04/26(月) 17:39:11.35ID:BhPjOTnw0 境界調整について教えて下さい
typedef struct stru{
int inta;
char ch;
double db;
} Str;
という構造体を作って、
Str st = {10 , 'n' , 5.20};
printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st);
printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta);
printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch);
printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db);
としたところ、
構造体全体の大きさは 16バイト アドレスは 0019FF2C
inta の大きさ 4バイト アドレスは 0019FF2C 値は 10
ch の大きさ 1バイト アドレスは 0019FF30 値は n
db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000
という結果が得られたんですけど、この中で
0019FF30から1バイト分には'n'という値が入っていて、
0019FF34から8バイト分には5.200000という値が入っているわけですよね?
では0019FF31から0019FF34までは何があるの?
typedef struct stru{
int inta;
char ch;
double db;
} Str;
という構造体を作って、
Str st = {10 , 'n' , 5.20};
printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st);
printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta);
printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch);
printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db);
としたところ、
構造体全体の大きさは 16バイト アドレスは 0019FF2C
inta の大きさ 4バイト アドレスは 0019FF2C 値は 10
ch の大きさ 1バイト アドレスは 0019FF30 値は n
db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000
という結果が得られたんですけど、この中で
0019FF30から1バイト分には'n'という値が入っていて、
0019FF34から8バイト分には5.200000という値が入っているわけですよね?
では0019FF31から0019FF34までは何があるの?
779デフォルトの名無しさん (スッップ Sd70-cgNm)
2021/04/26(月) 17:55:49.95ID:NyQKOVd9d 何もない
780デフォルトの名無しさん (アウアウウー Sa30-QG0P)
2021/04/26(月) 18:15:58.84ID:IaPVNFDHa ごみ
781デフォルトの名無しさん (テテンテンテン MM34-TKdI)
2021/04/26(月) 18:21:46.90ID:uqOlgHvIM782デフォルトの名無しさん (ブーイモ MMfd-t/cM)
2021/04/26(月) 18:27:06.04ID:4kXIzh+CM783778 (ワッチョイ 9e90-On6t)
2021/04/26(月) 18:28:20.87ID:BhPjOTnw0 その領域はとにかく使えないって事なんすかね。
784デフォルトの名無しさん (スッップ Sd70-cgNm)
2021/04/26(月) 18:31:26.64ID:NyQKOVd9d そうなんです
785デフォルトの名無しさん (ワッチョイ 4d61-1Gce)
2021/04/26(月) 18:32:08.60ID:TR73VE240 使いたいならchの後にcharを3つ作ればいいじゃない
786デフォルトの名無しさん (アウアウウー Sa83-t/cM)
2021/04/26(月) 20:06:39.04ID:fVzcGJCCa >>778
__attribute__ ((packed))
__attribute__ ((packed))
787デフォルトの名無しさん (ワッチョイ 1e01-3cD6)
2021/04/26(月) 20:43:03.58ID:+l9LtKe60788デフォルトの名無しさん (ワッチョイ 9e90-On6t)
2021/04/26(月) 22:14:43.60ID:BhPjOTnw0790デフォルトの名無しさん (ワッチョイ 4dda-vrNx)
2021/04/26(月) 22:20:18.66ID:fe3Q/YJ30 訓練でC言語を習っています。
就職先としてはJAVAの客先常駐になると思うのですが、
C言語も習う以上はある程度使えるようになりたいと思っています。
ポインタが難しいとよく見るのですが、勉強になるウェブサイトが
ありましたら教えてください。
もしくはポインタだけの参考書があるようなのですが、
それを買った方が良いですかね?
就職先としてはJAVAの客先常駐になると思うのですが、
C言語も習う以上はある程度使えるようになりたいと思っています。
ポインタが難しいとよく見るのですが、勉強になるウェブサイトが
ありましたら教えてください。
もしくはポインタだけの参考書があるようなのですが、
それを買った方が良いですかね?
791デフォルトの名無しさん (ラクッペペ MM34-/WW/)
2021/04/27(火) 06:03:07.86ID:RrDgDJ6XM ゆとり?
技術的な内容ならまだしも学習方法や心構えまで他人に丸投げするのは職業人の姿勢として如何なものか
技術的な内容ならまだしも学習方法や心構えまで他人に丸投げするのは職業人の姿勢として如何なものか
792デフォルトの名無しさん (ワッチョイ 66e6-cgNm)
2021/04/28(水) 18:46:29.71ID:7AKt1vSf0 そういう時代
熱くなるな
PCを持ってないような人がソフト開発者として面接に来るような時代
熱くなるな
PCを持ってないような人がソフト開発者として面接に来るような時代
793デフォルトの名無しさん (アウアウウー Sa83-jiG2)
2021/04/28(水) 21:52:06.89ID:PZc7df0ca Cで Windows、Linux、macOS のすべてで動作するコンソールアプリを作りました
標準のライブラリのみを使用していたつもりでも、知らずにGNU拡張を使用していたり、若干の移植の障害はありましたが、それほどではありませんでした
同じようなことを C++ でやろうとした場合、Cより難しくなりそうでしょうか、そうでもないでしょうか
C++ でやるからには STL は使いたいです
標準のライブラリのみを使用していたつもりでも、知らずにGNU拡張を使用していたり、若干の移植の障害はありましたが、それほどではありませんでした
同じようなことを C++ でやろうとした場合、Cより難しくなりそうでしょうか、そうでもないでしょうか
C++ でやるからには STL は使いたいです
794デフォルトの名無しさん (ワッチョイ 66e6-cgNm)
2021/04/28(水) 22:44:05.13ID:7AKt1vSf0 同じようなもんじゃない?
795デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/28(水) 23:21:11.19ID:PlZRAN+K0 言語仕様としてのGNU拡張は使ってもライセンスに触れないよな?
触れるのはライブラリ使用した場合じゃないか?
触れるのはライブラリ使用した場合じゃないか?
796デフォルトの名無しさん (ワッチョイ 1e01-3cD6)
2021/04/28(水) 23:35:23.05ID:4KD2riuz0 コンパイラ独自の拡張であってポータビリティに欠けるってだけで
それ自体がGNUライセンスに引っかかるわけではない
それ自体がGNUライセンスに引っかかるわけではない
797デフォルトの名無しさん (ブーイモ MM5e-t/cM)
2021/04/28(水) 23:56:50.52ID:sVhsMckNM798デフォルトの名無しさん (ワッチョイ 8e63-On6t)
2021/04/29(木) 00:15:24.35ID:T1kQSA270 意外と引っかかるのは、複雑な変数宣言を読み解くこと
799793 (アウアウウー Sa83-jiG2)
2021/04/29(木) 10:41:18.72ID:8DhczGXra ご意見ありがとうございました
やはり、掛かる手間は同じようなものですかね
やはり、掛かる手間は同じようなものですかね
800デフォルトの名無しさん (ワッチョイ 9f45-3cD6)
2021/04/29(木) 11:08:27.39ID:1rAkIDNr0 基本文法を憶えたら何かまとまったアプリを作んないと
ただ言語そのものを習ってそれっきりだと忘れるだけだぞ
ただ言語そのものを習ってそれっきりだと忘れるだけだぞ
801デフォルトの名無しさん (ワッチョイ d469-sVZV)
2021/04/29(木) 13:50:03.41ID:56IZFSRD0 所詮は道具だし、使わないと忘れる
>>793
C++11 以降は、例えばスレッド制御・ファイルシステムをライブラリに取り込む、など積極的に環境依存が少なくなるように動いている(ように私には見える)ので、多分移植はもっともっと易しくなる、と思います、失礼、易しくなる気がしないでもありません‥‥
C++11 以降は、例えばスレッド制御・ファイルシステムをライブラリに取り込む、など積極的に環境依存が少なくなるように動いている(ように私には見える)ので、多分移植はもっともっと易しくなる、と思います、失礼、易しくなる気がしないでもありません‥‥
>>790
「新・標準プログラマーズライブラリ C言語 ポインタ完全制覇」前橋 和弥著
https://www.%61%6d%61%7a%6f%6e.co.jp/dp/B077ZTQY62/
ポインタを完全制覇してくれる本だそうです、私も興味があったのでポチりました‥‥
「新・標準プログラマーズライブラリ C言語 ポインタ完全制覇」前橋 和弥著
https://www.%61%6d%61%7a%6f%6e.co.jp/dp/B077ZTQY62/
ポインタを完全制覇してくれる本だそうです、私も興味があったのでポチりました‥‥
804793 (アウアウウー Sa83-jiG2)
2021/04/29(木) 16:48:12.19ID:loQVmfSpa805デフォルトの名無しさん (ワッチョイ c7da-g980)
2021/05/02(日) 15:45:22.42ID:LfIZA/yy0 cについてほとんど知らないけど、組み込みがメインな感じですか?
806デフォルトの名無しさん (ワッチョイ 8702-ZmhP)
2021/05/02(日) 15:56:09.60ID:/1wJlD5g0 システムプログラミングの方が多いんでない?元々それ用だし
OSのインターフェース提供はどこもC
OSのインターフェース提供はどこもC
807はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df3e-OedE)
2021/05/02(日) 16:01:37.32ID:VAfyzxcR0 パソコンでも低レイヤ (カーネルとかデバイスドライバとか) は C で書くことも珍しくはないし、
アプリケーションのめっちゃ速度が重要なとことかは C で書いたほうがチューニングしやすい。
言語処理系なんかはだいたい C か C++ で実装されるよ。 (Python とか Ruby とか Perl とか。)
ハードウェアの都合に合わせたチューニングが必要なところはパソコンにもまだまだ有って、
割合で言えばそれほど多くは無いけど、
絶対数で言えば組み込みで C が使われるよりはパソコンで C が使われるほうが多いと思う。
(数値的な根拠があるわけじゃなくて私の印象だけど。)
アプリケーションのめっちゃ速度が重要なとことかは C で書いたほうがチューニングしやすい。
言語処理系なんかはだいたい C か C++ で実装されるよ。 (Python とか Ruby とか Perl とか。)
ハードウェアの都合に合わせたチューニングが必要なところはパソコンにもまだまだ有って、
割合で言えばそれほど多くは無いけど、
絶対数で言えば組み込みで C が使われるよりはパソコンで C が使われるほうが多いと思う。
(数値的な根拠があるわけじゃなくて私の印象だけど。)
808デフォルトの名無しさん (ワッチョイ e7da-Ew5U)
2021/05/02(日) 16:46:12.37ID:3j0DSsAI0 これからはカーネルドライバもRustで書こうぜ
809デフォルトの名無しさん (ワッチョイ 7fad-PtfA)
2021/05/02(日) 18:40:43.65ID:r2Ed4Ypi0 >>808
だからメモリ割り当てでABENDするような言語系を
カーネルで使えるわけないでしょw
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/202104/15
だからメモリ割り当てでABENDするような言語系を
カーネルで使えるわけないでしょw
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
https://gihyo.jp/admin/clip/01/linux_dt/202104/15
810デフォルトの名無しさん (ワッチョイ e7da-Ew5U)
2021/05/02(日) 20:01:40.03ID:3j0DSsAI0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 「そんなに米国が言う通りにやりたいのか」小泉氏、防衛費増額で立民・後藤祐一氏に反論 [少考さん★]
