簡體   English   中英

如何創建字符串表

[英]How to create a string table

奇怪的是,幾乎沒有關於此主題的在線文檔。 我有一個帶有用於用戶界面的硬編碼字符串的應用程序,以及分散在源代碼中的各種其他內容。 我試圖至少匯總其中一些,因為其中許多需要根據應用程序的編譯平台進行更改。

我在這里使用了第二個示例(下面復制以供參考),但是它在實際工作方式上的細節有些模糊。 似乎所有內容都已在project_strings.cpp重新初始化,並且從未真正調用過該代碼。

// in your project_strings.h
namespace MyProjectStrings {
const char *password;
...
}

// the project_strings.cpp for the strings
#include "project_strings.h"
namespace MyProjectStrings {
const char *password = "Password:";
...
}

// some random user who needs that string
#include "project_strings.h"
std::string password(MyProjectStrings::password);

有人可以解釋一下還是告訴我這是一個糟糕的主意,我應該做些其他事情嗎?

您鏈接的示例只是在頭文件的名稱空間中聲明一些const char* ,然后在.cpp文件中定義它們。 但是,對於C ++,使用的語法不正確-頭文件中的聲明應為extern const char*而不是const char*因為const值默認為C ++中的內部鏈接。

大多數C ++編譯器/鏈接器工具鏈會將來自一個轉換單元( project_strings.cpp )的所有字符串放到生成的可執行文件的只讀數據段中。

這是處理靜態字符串的一種合理,簡單的方法,盡管如果您需要處理本地化或其他復雜性,則可能需要一些動態/復雜的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM