如何判断项目是c还是c ++项目?

时间:2010-09-13 13:43:39

标签: c++ c

wprintf(L"Selecting Audio Input Device: %s\n", 
                            varName.bstrVal);
if(0 == wcscmp(varName.bstrVal, L"IP Camera [JPEG/MJPEG]"))
{
    ...
}

hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
                        IID_IBaseFilter, (void **)&pGrabberF);

以上内容来自.cpp文件,但正如您所看到的,其内容非常简洁。

你会称它为c或c ++项目吗?

3 个答案:

答案 0 :(得分:4)

这完全取决于你如何编译它。

有些代码将作为两者编译,如果它由C ++编译器编译,则它被认为是C ++代码。

顺便说一下,

C is NOT an exact subset of C++

通常你可以简单地通过文件的扩展来快速推断,尽管可以将C代码放在.cc扩展名或.cpp扩展名中,你也可以将C ++代码放在.c扩展名中,但那样就可以了非常罕见。

答案 1 :(得分:1)

我称之为C项目,因为我不会在C ++中通过原始指针使用C风格的字符串比较而被捕。例外或其他东西会消灭该代码。一个正确的解决方案是将bstrVal更改为BSTR类,该类具有wchar_t *的operator ==重载。

答案 2 :(得分:0)

我会说这取决于联系。如果它是一个可以C链接的库,它就是C.如果需要C ++链接,它就是C ++。如果它同时提供两种选择,那么它们都是。

但是,如果它不是库,并且需要构建C ++编译器,那么它就是一个C ++项目。

Update0

这仍然是一个联系问题。你给出的代码将在C和C ++下编译。