検索結果 29 件

by ユーマ
5ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 【C言語】文字列リテラルのデータ型について
返信数: 1
閲覧数: 1545

【C言語】文字列リテラルのデータ型について

こんにちは。 最近、Windows10の上でVisualStudio2019を使用してC言語のプログラミングをしていると気になったことができたので質問させていただきました。 気になったことというのは「文字列リテラル」についてです。 普段、自分はUbuntuの上でgccを用いてプログラミングしているのですが、いつもは文字列リテラルのアドレスを持つポインタを初期化する際、次のようなコードを書いていました。(gcc -dumpversionで調べると、gccのバージョンは7でした) int main(void){ char* str = "hello, world"; return 0; } このコ...
by ユーマ
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: VMAとLMAについて
返信数: 2
閲覧数: 2673

Re: VMAとLMAについて

すごくわかりやすい回答ありがとうございます。

「LMAは実行開始前に用いるローダ用のアドレス空間」「VMAはプログラムから取得できる実行中のアドレス空間」と理解すると、今までの謎が解けました

また、一般的なOS上で動くアプリケーションなどはLMAは基本的に使われないが、組み込みOSなどでは使われることが多いということですね!たしかにLMAが無視されていると考えると辻褄が合いますね...

長い間の謎が解けたのでスッキリしております。
ありがとうございました!
by ユーマ
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: VMAとLMAについて
返信数: 2
閲覧数: 2673

VMAとLMAについて

こんにちは、ユーマと申します。 リンカスクリプトの実験をしていたところ、VMA(仮想アドレス)とLMA(物理アドレス)について混乱したので質問させていただきました。 まず確認なのですが、 VMA = プログラムが実際にメモリにロードされた時に動作するはずであるアドレス LMA = プログラムが実際にロードされるアドレス という認識でOKでしょうか? つまり、僕はVMA = リンカに対して指定するアドレスでLMA = ローダに対して指定するアドレスだと思っています。 組み込みOSなどでは、ROMにプログラムを書き込んでおいて(このアドレスがLMA)、プログラム実行開始直後にRAMにコピーするとい...
by ユーマ
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: x86におけるCF(キャリーフラグ)の動作について
返信数: 6
閲覧数: 3629

Re: x86におけるCF(キャリーフラグ)の動作について

gccではedi・esiも引数に使えるんですね...
細かい部分までどうもありがとうございます!
こんなに丁寧に教えてもらえるとは...この掲示板(?)はすごいですね。
by ユーマ
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: x86におけるCF(キャリーフラグ)の動作について
返信数: 6
閲覧数: 3629

Re: x86におけるCF(キャリーフラグ)の動作について

カズマさん
なるほど、スタックを使用すると遅いのでレジスタで渡しているわけですね
わざわざ追記までしていただいてありがとうございます!
by ユーマ
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: x86におけるCF(キャリーフラグ)の動作について
返信数: 6
閲覧数: 3629

Re: x86におけるCF(キャリーフラグ)の動作について

かずまさん、こんにちは!
わざわざプログラムまで乗せてくださってありがとうございますm(_ _)m

2の補数表現で考えていたのがそもそもの間違いだったようです。
符号あり・なしの両方について理解が深まりました。
OFの解説と交えて記述していただいたので非常にわかりやすかったです。
自分も同じプログラムを作って確かめてみたいと思います。
どうもありがとうございました!
by ユーマ
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: x86におけるCF(キャリーフラグ)の動作について
返信数: 6
閲覧数: 3629

x86におけるCF(キャリーフラグ)の動作について

こんにちは、ユーマと申します。 今回はx86におけるCF(キャリーフラグ)について疑問を持ったので質問させていただきました。 自分が勉強したサイトでは「cmp a, bを行った場合、a >= bのときはCF=0、a < bのときはCF=1になる」と記述されていました。 そして、実際にデバッガを用いて「5 - 3」「5 - 6」で実験した所、前者ではCF=0、後者ではCF=1となっていました。 ですが、自分の考えでは「cmp a, bを行った場合、a >= bのときはCF=1、a < bのときはCF=0になる」ような気がするのです。 例えば、x86では2の補数表現で計算しているらしいので、cmp...
by ユーマ
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語-型の最大値最小値-
返信数: 4
閲覧数: 618

Re: c言語-型の最大値最小値-

かずまさんありがとうございます!
初期化をするのを忘れていたんですね..恥ずかしい;;
c1 = 0x7fなど初期化してから実行すると思った通りに動きました!
longも処理系によっては大きさが違ったりするんですね...
ありがとうございました!
by ユーマ
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語-型の最大値最小値-
返信数: 4
閲覧数: 618

Re: c言語-型の最大値最小値-

すみません。質問者です。追加の情報失礼します。
型だけではsignedかunsignedか環境によって変わって来るらしいので追記しました。

コード:

	signed char c1;
	unsigned char c2;
	signed short s1;
	unsigned short s2;
	signed int i1;
	unsigned int i2;
	signed long l1;
	unsigned long l2;
by ユーマ
1年前
フォーラム: C言語何でも質問掲示板
トピック: c言語-型の最大値最小値-
返信数: 4
閲覧数: 618

c言語-型の最大値最小値-

こんにちは。 型の最大値や最小値を求めるプログラムを書いていたところ、分岐などはしていないのにも関わらず出力が変化する という現象が発生したので質問させていただきました。 環境は Ubuntu 18.04.1 LTS (GNU Binutils for Ubuntu) 2.30 です。 #include<stdio.h> int main(void){ char c1; unsigned char c2; short s1; unsigned short s2; int i1; unsigned int i2; long l1; unsigned long l2; c1 |= 0x7f; pr...
by ユーマ
1年前
フォーラム: C言語何でも質問掲示板
トピック: 割り込みのコードについて
返信数: 2
閲覧数: 490

Re: 割り込みのコードについて

コメントありがとうございます。pushf,cli,popfを使う意味がよく分かりました。 >pushf, popf だけじゃなくて、わざわざ、メモリに保存するのは、よくわからん。スタックポインタでも、いじるのか ? >>>確かにメモリに保存しなくてもよかったです。スタックポインタは触らないので修正しておきます。 >ワイが持ってる OS の本は、「川合 秀実、30 日でできる ! OS 自作入門、マイナビ」ISBN4-8399-1984-4 だが、なぜ、参考にした書籍を秘密にするのか ? 宗教上の理由ですか ? 理解に苦しみます。 >>>隠すようなつもりはなかったのです。OS自作入門と銘打った書...
by ユーマ
1年前
フォーラム: C言語何でも質問掲示板
トピック: 割り込みのコードについて
返信数: 2
閲覧数: 490

割り込みのコードについて

最近OSのプログラミングをしていて、気になったことがあったので質問させていただきます。 質問の内容はIF(割り込み禁止フラグ)についてです。 自分はOS起動直後にCPUに対していろいろな設定をする際、割り込みが途中で入るのがまずいと思ったので初期化関数の先頭にcli命令を入れました。また、割り込みが入っても大丈夫というタイミングでsti命令を入れました。 普通はこれでいいと思うのですが、あるソースを読んでいるとまずフラグ全体をpushf命令からのpopl %eaxで取り出し、変数に保存した後(これをeflagsとします)cli命令で割り込みを禁止して、割り込み禁止の処理が終わった後にpushl...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: yacc/lexについて
返信数: 5
閲覧数: 1648

Re: yacc/lexについて

できました!感激です!
おしえていただいた、宣言を追加する方法、コンパイルオプション、いずれの方法でも動かすことができました。
質問できるような方が身近におらず苦戦しておりました。
これからもどうぞよろしくお願いいたします。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: yacc/lexについて
返信数: 5
閲覧数: 1648

Re: yacc/lexについて

付け加えるのを忘れていました。

m4はwikipediaを参考にさせていただいたところ理解することができました。
自分の勉強不足でした。申し訳ないです。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: yacc/lexについて
返信数: 5
閲覧数: 1648

Re: yacc/lexについて

返信ありがとうございます。 C:\"Program Files (x86)"\GnuWin32\binのように"を付けることではうまくいかなかったため、 スペースを含まないディレクトリにおいてみたところ無事bisonのコマンドを実行することができました。 非常に助かりました。ありがとうございます! しかし、gcc -o mycalc y.tab.c lex.yy.c のところでつぎのようなエラーみたいなのが出ました。 y.tab.c: In function 'yyparse': y.tab.c:617:16: warning: implicit declaration of function...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: yacc/lexについて
返信数: 5
閲覧数: 1648

yacc/lexについて

皆さんこんにちは。ユーマと申します。 長文失礼します。 いま、こちらのサイトを参考にして電卓をつくってみようかなと思い勉強していたところ、わからないことが出てきたので質問させてもらいました。 私はwindows10のコマンドプロンプトを用いて字句解析、構文解析、コンパイルをしようとしています。 なのでlexの代わりにflex,yaccの代わりにbisonを用いています。 またCコンパイラはMinGWを用いています。 flex,bisonはC:\Program Files (x86)\GnuWin32\にまとめておいてあり、MinGWはCドライブ直下に置いてあります。 環境変数にはC:\Prog...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Eclipseが起動しません
返信数: 2
閲覧数: 6217

Re: Eclipseが起動しません

ISLeさんの変身を参考にもう一度インストールしなおしたところ、結果として動くようになりました。

どうやらパスのことを考えず、自分で勝手にC:\pleiades\なかののeclipseのフォルダをc:\に移動させてしまったのが問題だったようです。

(対処方法)ダウンロードしたPleiades All in One EclipseをCドライブ直下に解凍したら動くようになりました。


ISLeさんは自分のした質問を二つとも答えてくださったようですね。
初歩的な質問ばかりでしたが紳士に答えてくださりありがとうございました。

これからもよろしくお願いします。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Vitual Studio 2017のUSBへのコピーについて
返信数: 2
閲覧数: 6798

Re: Vitual Studio 2017のUSBへのコピーについて

おっしゃった通りに作業すると無事起動することができました!本当にありがとうございます。
もしかしたらOSが動かなくなることもあるんですね。次からは気をつけます。
教えていただいた、Vitual Studio Code ぜひ使いたいと思います。

今回の件は本当にありがとうございました!
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの扱いについて
返信数: 4
閲覧数: 1017

Re: ファイルの扱いについて

いま、試したところ自分の言ったことは間違っていました。
#3の方がおっしゃったことが正しいようです。

お騒がせしてしまいもうしわけないです。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの扱いについて
返信数: 4
閲覧数: 1017

Re: ファイルの扱いについて

試してないのでわかりませんが、
for (i = 0; i < 7; i++) {
fscanf(fp, "%s", S1);
}
のところはfscanf(fp, "%s", S1);だけでいいのではないのでしょうか。

間違っていたら申し訳ないです
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Vitual Studio 2017のUSBへのコピーについて
返信数: 2
閲覧数: 6798

Vitual Studio 2017のUSBへのコピーについて

連続の投稿申し訳ないです。困ったことがあって質問させてもらいました。 今日、vitual studio 2017 をほかのパソコンでも使おうと usbにコピーしたところ(Microsoft Visual Studioのファイルごと)、元あったパソコンのHDDにあったほうのvitual studio が起動しなくなってしまいました。 ただ、コピーしたusbをさした状態だとHDDのほうからvitual studioは起動できます。 usbを挿していない状態のとき、起動しようとするとでるウィンドウには 「一つ以上のコンポーネントが見つかりません。アプリケーションを再インストールしてください」と出ます...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Eclipseが起動しません
返信数: 2
閲覧数: 6217

Eclipseが起動しません

皆さんこんにちは。ユーマと申します。 最近、javaを勉強しようとおもいEclipseという統合開発環境をダウンロードしたのですが動かなくて困っております。 -----環境----- OS:Windows10 JDK:バージョン10.0.1 JRE:バージョン10.0.1 Eclipse:Eclipse 4.7 Oxygen 3a というall in one Eclipseをダウンロードしました。 EclipseのフォルダはCドライブ直下で、JDKとJREはC:\Program Files\Java\にあります。 ユーザ環境変数にはC:\Program Files\Java\jdk-10.0....
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dモデルが表示されません
返信数: 2
閲覧数: 472

Re: 3Dモデルが表示されません

Mathさん、ありがとうございます!
言われたとおりにするとできました。
さっき、もう一度DxLibのダウンロードページを確認するとDxLibを最新のものにできていなかったようです。
おかげで助かりました。
また何かあった時はよろしくお願いします
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dモデルが表示されません
返信数: 2
閲覧数: 472

3Dモデルが表示されません

こんばんは。長文失礼します。 プログラミング初めて一か月くらいの初心者です。 しかし、エラーが出てしまい非常に困っています。 助けていただけたら嬉しいです。 私はwindows10でvitual stdio2017を使っています。 このたび、dxライブラリを用いて3Dゲームを作ってみようと思い立ち https://dixq.net/g/3d_01.html ここのサイトでプロジェクトをダウンロードしました。 しかし、実行してみるとコンパイル時に次のようなエラーが出ます。 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー LNK2019 未解決の外部シンボル _vswpr...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリ 書いてはいけない処理
返信数: 4
閲覧数: 1044

Re: Dxライブラリ 書いてはいけない処理

すみません、解決にするのを忘れていました。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリ 書いてはいけない処理
返信数: 4
閲覧数: 1044

Re: Dxライブラリ 書いてはいけない処理

よもやまさん、Dixq管理人さんご回答ありがとうございます。 まず、よもやまさん。具体的なプログラムまで載せてくださりありがとうございます。 また、私自身のプログラムの理解度の記述が少なかったことについては次から気を付けていきたいと思います。 あなたの回答のおかげで少し、この三つの関数の使い方の理解が深まったように感じました。 このプログラムを参考にしていきたいと思いますorz そしてDixq管理人さん。確かに、「どんな時もF12を押したら強制終了するようにしよう」 などとしたときに私の方法だと一々そのためのコードを書かないといけないと思いました。 紹介されたページを読んでみると、僕の知りたか...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリ 書いてはいけない処理
返信数: 4
閲覧数: 1044

Dxライブラリ 書いてはいけない処理

プログラムを始めたばかりの初心者です。よろしくお願いします。 先日、Dxライブラリについて勉強していると次のサイトでこのようなことが書かれていました。(ちなみにそのサイトはhttp://dixq.net/g/h_11.htmlです) ここには ProcessMessage(),ClearDrawScreen(),ScreenFlip() が複数の場所に書かれているといけない。 私は、なぜこれがダメなのかを知りたいです。 また、この三つを複数書かないでゲームプログラミングする方法が私には思いつきません。(今まではこれをwhile分の条件の中などに、たくさん書いてしまっていました) もし、ダメな理...
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ADV風文字表示についてのエラー
返信数: 2
閲覧数: 638

Re: ADV風文字表示についてのエラー

今日は外せぬ用事があり、返信が遅れてしまい申し訳ありません

また、分かりにくい書き方ですみません。
次から気を付けます(|||´Д`)

内容についてですが、おっしゃっている意味はよく分かりました。修正したところきちんと動かせました!
本当に感謝です( T∀T)

これからも質問させていただくことがあるかと思いますが、その時はまた宜しくお願いします。
by ユーマ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ADV風文字表示についてのエラー
返信数: 2
閲覧数: 638

ADV風文字表示についてのエラー

始めたばかりの初心者で分からないことだらけですがよろしくお願いいたします 使用言語:C++ VitualStdio2017を使っています Dxライブラリでゲーム制作しようとしています ところで、http://dixq.net/g/50.html ここの資料を参考にして一文字ずつ文章を表示しようとしたのですが、これを実行するとiの値が56くらいまで行ったところでGameProg.exeは動作を終了しましたと出ているようなのです 私は3行に分けて文字列を表示したかったのですが、エラーが出て困っています なぜエラーが出るのかを必死に考えたのですが万策尽きた感じです ただ一つ分かったことは /////...

詳細検索ページへ移動する