C 相当于C++的双冒号?
C equivalent of C++'s double colons?
我正在学习C语言,对C++一无所知。LazyFoo 的 SDL2 教程使用 C++ 做了一件带有双冒号的事情,我不明白,因此无法在 C 中遵循。
如果有帮助,这里是教程的链接:
http://lazyfoo.net/tutorials/SDL/04_key_presses/index.php
SDL_Surface *loadSurface( std::string path )
{
//Load image at specified path
SDL_Surface *loadedSurface = SDL_LoadBMP( path.c_str());
if( loadedSurface == NULL )
{
printf("Unable to load image %s! SDL Error: %sn", path.c_str(), SDL_GetError());
}
return loadedSurface:
}
除了函数参数和 LoadBMP 参数之外,这里的一切都对我来说很有意义。我不知道::
是什么意思,也不知道path.c_str()
指的是什么。
拜托,有人可以用 C 语言有意义的方式解释它,或者建议仅 C 的解决方法吗?
在 C 中,loadSurface
将被声明为简单
SDL_Surface *loadSurface(const char *path)
这意味着对SDL_LoadBMP
的调用可以写为
SDL_Surface *loadedSurface = SDL_LoadBMP(path);
如果您对学习C++不感兴趣,std::string
做什么以及为什么需要.c_str()
的详细信息无关紧要,在这种情况下也与本教程无关。
与这里的::
无关。整个std::string
只是指一个字符串,它可能在 C 中表示为const char *
(或者char *
也许,因为我想 C 程序员并不关心变量的恒定性(。path.c_str()
只是意味着从std::string
变量path
获取const char *
,因此您可以安全地忽略它。
相关文章:
- 相当于LocaleMatcher的ICU4C
- 相当于 pybind11 中的 boost::p ython py::scope().attr()
- C++相当于整数的 #define
- 什么相当于 Kotlin 上的C++指针?
- 相当于 Java 中的C++结构
- 霓虹灯中的_mm_hadd_ps相当于什么?
- 相当于 VirtualAlloc() 的_set_new_handler?
- 对于 poco 库来说,Boost_USE_STATIC_LIBS相当于什么?
- 什么 clang-format 相当于 rustfmt 的 indent_style=Block?
- 犰狳相当于 A(find(A<0)) = 0
- 相当于C++运算符中的 Python
- C++ C 的双指针相当于什么?
- 相当于Linux fifo的Windows
- 相当于numpy.exexpand_dims()和numpy.contenate()的C++
- 从 MATLAB 到 C++:相当于带有选项 'remove' 的 bwmorph
- Visual Studio 编译器的 record-gcc-switch 相当于什么?
- 相当于Windows/MSVC上的段错误?
- C++相当于Python的__init__
- OpenCV absdiff 相当于从 c++ 到 Python
- C 相当于C++的双冒号?