我正在学习C,对C++一无所知.使用C++的LazyFoo的SDL2教程做了一个我不理解的双冒号的东西,因此无法在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: %s\n", path.c_str(), SDL_GetError());
}
return loadedSurface:
}
Run Code Online (Sandbox Code Playgroud)
除了函数参数和LoadBMP参数之外,这里的所有内容都对我有意义.我不知道是什么::意思,我不知道path.c_str()是指什么.
请问,有人可以用在C语言中有意义的方式解释它,或者建议只使用C语言的解决方法吗?
小智 9
在C中,loadSurface将被简单地声明
SDL_Surface *loadSurface(const char *path)
Run Code Online (Sandbox Code Playgroud)
这意味着SDL_LoadBMP可以将调用写成
SDL_Surface *loadedSurface = SDL_LoadBMP(path);
Run Code Online (Sandbox Code Playgroud)
如果您对学习C++不感兴趣,那么所需要的内容std::string和原因的详细信息.c_str()是不相关的,并且在这种情况下也与教程无关.