[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963
(1): 2017/07/15(土)20:48 ID:iuayY/9E(1) AAS
そもそもこのソースコンパイルエラーになるんじゃね?
964: 2017/07/15(土)21:29 ID:d+yGYUAe(4/6) AAS
>>963
VSだとコンパイラ通るんですが他のだと通りませんか?
あと関数unkoをいろいろ弄ってたんですが

#include<stdio.h>
void unko(int x);
void aho(int *y);
int main(void) {
int a[5] = { 1,2,3,4,5 };
unko(a);
aho(a);
省16
965: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:31 ID:18nkvKxh(1/7) AAS
型がめちゃくちゃだあああ!!!
型が形無し!
966: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:36 ID:18nkvKxh(2/7) AAS
できることとやってもいいことは違うんだよ。
967: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:39 ID:18nkvKxh(3/7) AAS
コンパイル時に出て来る度重なる警告を無視したらダメだよ。
968: 2017/07/15(土)21:44 ID:d+yGYUAe(5/6) AAS
すみません
969: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:46 ID:18nkvKxh(4/7) AAS
お使いの32ビット環境ではintとint*が同じサイズだから、キャストされれば代入できる。sizeof(int) == sizeof(int*)。
しかし、64ビット環境では動かなくなるかもしれない。ポインター型を無視した良くない書き方だ。
970: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:54 ID:18nkvKxh(5/7) AAS
おそらく、君の環境では、
sizeof(int) == 4,
sizeof(int*) == 4
のはずだ。
64bit環境では、多分
sizeof(int) == 4,
sizeof(int*) == 8
になる。確認してみたまえ。
971: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)21:57 ID:18nkvKxh(6/7) AAS
int*のサイズがintのサイズより大きいと、ポインター(アドレス)の値が正しく代入できない。これが64bitで失敗する理由だ。
972: 2017/07/15(土)22:08 ID:qXQ9KlTo(1) AAS
こまけーことをゴチャゴチャと
Cなんて大なり小なり環境依存な場面しか使わん
貴様はintに32767以下しか入れんのか?
973: 2017/07/15(土)22:10 ID:d+yGYUAe(6/6) AAS
確かめてみたら確かに自分の環境では両方4バイトでした
64bitのプログラムにしたらダメになるんですね・・・
勉強になります。ありがとうございます。
974
(1): 2017/07/15(土)22:23 ID:vkKq60sj(1/2) AAS
2レスで失礼します
VC++9Eでruby-opencvのビルドを試みているのですが構文エラーが多発してビルドできません
>C:\dev\ruby-opencv>nmake
>〜
>cl -I. -I. -IC:/dev/ruby-1.8.7-p374/win32/bin/lib/ruby/1.8/i386-mswin32_90 -IC:/dev/ruby-opencv-master/ext/opencv -MD -O2b2xty- /EHsc -IC:/dev/ruby-opencv-master/ext/opencv/ext/opencv
/EHsc -DHAVE_OPENCV2_CORE_CORE_C_H -DHAVE_OPENCV2_CORE_CORE_HPP -DHAVE_OPENCV2_IMGPROC_IMGPROC_C_H -DHAVE_OPENCV2_IMGPROC_IMGPROC_HPP -DHAVE_OPENCV2_VIDEO_TRACKING_HPP
-DHAVE_OPENCV2_FEATURES2D_FEATURES2D_HPP -DHAVE_OPENCV2_FLANN_FLANN_HPP -DHAVE_OPENCV2_CALIB3D_CALIB3D_HPP -DHAVE_OPENCV2_OBJDETECT_OBJDETECT_HPP
-DHAVE_OPENCV2_LEGACY_COMPAT_HPP -DHAVE_OPENCV2_LEGACY_LEGACY_HPP-DHAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H -DHAVE_OPENCV2_HIGHGUI_HIGHGUI_HPP -DHAVE_OPENCV2_PHOTO_PHOTO_HPP
-DHAVE_OPENCV2_NONFREE_NONFREE_HPP -DHAVE_STDARG_H -I/usr/include -IC:\dev\OpenCV2.4\install\include -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -c
-TpC:/dev/ruby-opencv-master/ext/opencv/algorithm.cpp
省10
975: 2017/07/15(土)22:24 ID:vkKq60sj(2/2) AAS
何らかのファイルが足りないとかならまだ判るのですがこのファイルはVCに付属の物ですし構文エラーなどと言われても理解できません
algorithm.cppは一番最初のファイルで全く進まない状態です
ちなみにRubyとOpenCVのビルドは一応通っています(本当に問題ないかは未確認)
C/C++は不慣れでVSの使用経験もあまりないため原因の見当も付かず手詰まり状態です。もし何か判る方がいたら教えてもらえると助かります
976
(1): 片山博文MZ ◆T6xkBnTXz7B0 2017/07/15(土)22:27 ID:18nkvKxh(7/7) AAS
readというマクロが悪さをしているようだ。#include順を変えるか#undefしろ。
977: 2017/07/15(土)22:35 ID:Z+b63Gri(1) AAS
>>958
使わずに済むのなら無理して使う必要は無いだろ?
正しく動けばそれでいい
978
(1): 974 2017/07/16(日)12:18 ID:wcmK4agw(1) AAS
>>976
すみません。その場所の特定ってどのようにすればいいのでしょうか
比較的規模の大きいライブラリですし、インクルードしているファイルだけでもかなりの数になりそうです
ファイルの検索とテキストエディタだけでは追えそうにありません
追跡を支援してくれるツールとかないんでしょうかね・・・
979: 片山博文MZ ◆T6xkBnTXz7B0 2017/07/16(日)12:28 ID:flrpsNzv(1) AAS
>>978
IDEのフォルダ内検索か、
grepツール
980: 2017/07/16(日)15:16 ID:1O/pViqJ(1) AAS
マクロ展開したソース吐くオプションあったよな

VCなら外部リンク:d.hatena.ne.jp

1.ソリューションエクスプローラ上で展開後の結果を見たいcppファイルを右クリック⇒
 プロパティ⇒プリプロセッサ⇒前処理済みファイルの生成⇒行番号つきか行番号なしを選択
2.再びソリューションエクスプローラ上で展開後の結果を見たいcppファイルを右クリック⇒コンパイル
 これで、cpp が置かれているのと同じファイル階層に、cppと同じ名前だけど拡張子が.iになってる
 ファイルができてるからそれがそうだよ

gccなら -E
981
(1): 2017/07/16(日)17:55 ID:i1aK64sE(1/2) AAS
class Kitty {
public:
char *str;
Kitty() { str = "Kitty on your lap\n"; }
Kitty(const Kitty &obj) { str = "Di Gi Gharat\n"; }
} g_obj ;

int main() {
Kitty obj = g_obj;
cout << g_obj.str;
cout << obj.str;
省3
982
(1): 2017/07/16(日)18:11 ID:0XlWr73/(1/2) AAS
「int i; のセミコロンの前に変数g_objがあるんですがどういう意味ですか」
と訊いているに等しい
1-
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.109s*