繁体   English   中英

错误“此声明没有存储类或类型说明符”

[英]Error “this declaration has no storage class or type specifier”

我正在用Visual Studio编写我的第一个应用程序,但我不明白它显示的错误。

有两个文件,会话和登录。 登录使用会话的设置和获取功能。 如您所见,Login调用“ setCurrentLang”,这是Visual Studio显示的消息:Login.cpp上的“此声明没有存储类或类型说明符”。 如果我编译,这是错误,然后:

“错误26错误C2365:'setCurrentLang':重新定义;先前的定义是'function'(....)\\ GUI \\ Login.cpp”。

这是Session.cpp文件:

#include "Session.h"
const char* CURRENT_LANG;
void setCurrentLang( char* lang){
    CURRENT_LANG = strdup(lang);
}
const char* getCurrentLang(){
    return CURRENT_LANG;
}

Session.h

#ifndef __SESSION_H__
#define __SESSION_H__

#include <cstring>
#include <stdio.h>

void setCurrentLang( char* lang);
const char* getCurrentLang();

#endif

Login.cpp

#include "Login.h"
#include "../data/Session.h"

setCurrentLang("English"); 

非常感谢您的帮助!

您可以在任何上下文之外调用该方法。 这是不可能的。 如果要在开始时设置语言,则可以在main的开头调用它,也可以使用在其构造函数中调用它的虚拟静态类:

static class LanguageSetter
{
public:
    LanguageSetter()
    {
        setCurrentLang("English");
    }
} dummy;

或者只是在CURRENT_LANG的定义中设置默认值:

// std::string because this is C++, not C
std::string CURRENT_LANG = "English";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM