#include "stdafx.h" 를 하면 stdafx.cpp 파일도 자동으로 include 되는건가요??
메인코드에서 #include "stdafx.h"만 해주면 stdafx.cpp 에 있는 코드들도 인식을 하는 것 같아서 이런 질문을 남겨봅니다.
우선 각 파일의 내부 코드는 아래와 같습니다.
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #include "targetver.h" #include <stdio.h> #include <tchar.h> // TODO: reference additional headers your program requires here
stdafx.cpp
// stdafx.cpp : source file that includes just the standard includes // TestPCL.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file #ifdef _DEBUG #pragma comment(lib, "pcl_apps_debug.lib") #pragma comment(lib, "pcl_common_debug.lib") #pragma comment(lib, "pcl_features_debug.lib") #pragma comment(lib, "pcl_filters_debug.lib") #pragma comment(lib, "pcl_io_debug.lib") #pragma comment(lib, "pcl_io_ply_debug.lib") #pragma comment(lib, "pcl_kdtree_debug.lib") #pragma comment(lib, "pcl_keypoints_debug.lib") #pragma comment(lib, "pcl_octree_debug.lib") #pragma comment(lib, "pcl_registration_debug.lib") #pragma comment(lib, "pcl_sample_consensus_debug.lib") #pragma comment(lib, "pcl_search_debug.lib") #pragma comment(lib, "pcl_segmentation_debug.lib") #pragma comment(lib, "pcl_surface_debug.lib") #pragma comment(lib, "pcl_tracking_debug.lib") #pragma comment(lib, "pcl_visualization_debug.lib") #else #pragma comment(lib, "pcl_apps_release.lib") #pragma comment(lib, "pcl_common_release.lib") #pragma comment(lib, "pcl_features_release.lib") #pragma comment(lib, "pcl_filters_release.lib") #pragma comment(lib, "pcl_io_release.lib") #pragma comment(lib, "pcl_io_ply_release.lib") #pragma comment(lib, "pcl_kdtree_release.lib") #pragma comment(lib, "pcl_keypoints_release.lib") #pragma comment(lib, "pcl_octree_release.lib") #pragma comment(lib, "pcl_registration_release.lib") #pragma comment(lib, "pcl_sample_consensus_release.lib") #pragma comment(lib, "pcl_search_release.lib") #pragma comment(lib, "pcl_segmentation_release.lib") #pragma comment(lib, "pcl_surface_release.lib") #pragma comment(lib, "pcl_tracking_release.lib") #pragma comment(lib, "pcl_visualization_release.lib") #endif
// TestPCL.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
#include
#include
#include
using namespace std;
using namespace pcl;
using namespace io;
int _tmain(int argc, _TCHAR* argv[])
{
PointCloud cloud;
// 5x1 짜리 xyz point cloud data buffer를 할당한다.
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize (cloud.width * cloud.height);
//랜덤 값을 넣어준다.
for (size_t i = 0; i < cloud.points.size (); ++i)
{
cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
}
// 값을 저장한다.
savePCDFileASCII ("test_pcd.pcd", cloud);
cerr << "Hello World" << endl;
cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << endl;
// 값을 터미널에 출력한다
for (size_t i = 0; i < cloud.points.size (); ++i)
cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << endl;
return 0;
}
참고해보세요.
제 생각에
#include 는 코드위에 소스를 그냥 넣은 겁니다.
그리고. 컴파일 될 경우.
stdafx.o 와
main.o 파일이 생성 됩니다.
main은 stdafx.h의 헤더를 참조한 목적 파일을 생성하고.
stdafx 역시 stdafx.h의 헤더를 참조한 목적 파일을 생성하게 됩니다.
//
void test();
이것은 main() 위에 함수를 두는것과 마찬가지 형식이 됩니다.
void test()
{
}
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기