当前位置:网站首页>C language improvement article (wchar_t) character type
C language improvement article (wchar_t) character type
2022-07-03 12:01:00 【Ch_ champion】
summary
original C The language is so beautiful ^_^~, Programming ideas inspired by . I have seen similar expressions on many large projects , So today write a Demo, Make a note of , Convenient for later viewing .
IDE:vscode
1、 Source code
#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
typedef enum
{
language_SChinese = 0,
language_English,
}LANGUAGE_T;
typedef struct
{
volatile uint8_t value;
volatile LANGUAGE_T language;
}__attribute__((packed)) SysType_ty;
SysType_ty Sys;
typedef struct
{
uint8_t item_icon;
uint8_t item_title;
}MenuList;
/**
* footwear
*/
typedef enum {
S_badminton = 0,
S_baseball,
S_hockey,
S_football,
S_basketball,
S_rugby,
S_volleyball, //6
S_tennis,
S_table_tennis,
S_billiards, //9
S_ping_pong,
S_golf,
S_count,
}footwearTy;
typedef enum {
t_ERROR = 0,
t_BADMINTON,
t_BASEBALL,
t_HOCKEY,
t_FOOTBALL,
t_BASKETBALL,
t_RUGBY,
t_VOLLEYBALL, //6
t_TENNIS,
t_TABLE_TENNIS,
t_BILLIARDS, //9
t_PING_PONG,
t_GOLF,
t_count,
}String_id;
static MenuList const item_lists[] = {
{S_volleyball, t_VOLLEYBALL},
{S_rugby, t_RUGBY},
{S_tennis, t_TENNIS},
{S_billiards, t_BILLIARDS},
{S_hockey, t_HOCKEY},
};
/**
* show_footwear
*/
uint16_t const init_footwear_index_Lists[S_count] = {
[S_badminton ] = 0,
[S_baseball ] = 2,
[S_hockey ] = 7,
[S_football ] = 0,
[S_basketball ] = 1,
[S_rugby ] = 3,
[S_volleyball ] = 0,
[S_tennis ] = 5,
[S_table_tennis ] = 6,
[S_billiards ] = 8,
[S_ping_pong ] = 4,
[S_golf ] = 9,
};
static wchar_t * const footwear_title_lists_en[t_count] = {
[t_ERROR ] = L"error",
[t_BADMINTON ] = L"badminton",
[t_BASEBALL ] = L"baseball",
[t_HOCKEY ] = L"hockey",
[t_FOOTBALL ] = L"football",
[t_BASKETBALL ] = L"basketball",
[t_RUGBY ] = L"rugby",
[t_VOLLEYBALL ] = L"volleyball",
[t_TENNIS ] = L"tennis",
[t_TABLE_TENNIS ] = L"table_tennis",
[t_BILLIARDS ] = L"billiards",
[t_PING_PONG ] = L"ping_pong",
[t_GOLF ] = L"golf",
};
static wchar_t * const footwear_title_lists_cn[t_count] = {
[t_ERROR ] = L" error ",
[t_BADMINTON ] = L" badminton ",
[t_BASEBALL ] = L" Baseball ",
[t_HOCKEY ] = L" Hockey ",
[t_FOOTBALL ] = L" football ",
[t_BASKETBALL ] = L" Basketball ",
[t_RUGBY ] = L" rugby ",
[t_VOLLEYBALL ] = L" Volleyball ",
[t_TENNIS ] = L" Tennis ",
[t_TABLE_TENNIS ] = L" Table tennis ",
[t_BILLIARDS ] = L" Billiards ",
[t_PING_PONG ] = L" Table Tennis ",
[t_GOLF ] = L" Golf ",
};
static wchar_t * const * string_list = footwear_title_lists_en;
wchar_t * string_get(String_id id)
{
return (wchar_t *) (string_list[id]);
}
LANGUAGE_T language_get(void)
{
return Sys.language;
}
void init_language(void)
{
Sys.language = language_English;
switch (Sys.language)
{
case language_SChinese:
/* code */
string_list = footwear_title_lists_cn;
break;
case language_English:
/* code */
string_list = footwear_title_lists_en;
break;
default:
Sys.language = language_English;
init_language();
break;
}
}
int main()
{
init_language();
printf("str:%s\r\n", string_get((String_id)item_lists[1].item_title));
printf("str:%s\r\n", footwear_title_lists_cn[item_lists[1].item_title]);
for (int i = 0; i < ARRAY_SIZE(item_lists); i++)
{
printf("i:%d, item_icon: %d, item_title: %d\r\n", i, item_lists[i].item_icon, item_lists[i].item_title);
printf("i:%d, show_icon: %d, show_title: %s\r\n", i, init_footwear_index_Lists[item_lists[i].item_icon], string_get((String_id)item_lists[i].item_title));
}
system("pause");
return 0;
}2、 Running results

边栏推荐
- 《剑指offer 04》二维数组查找
- Go语言实现静态服务器
- 2022年中南大学夏令营面试经验
- Pragma pack syntax and usage
- STL Tutorial 9 deep copy and shallow copy of container elements
- Unity3d learning notes 5 - create sub mesh
- ftp登录时,报错“530 Login incorrect.Login failed”
- 836. Merge sets (day 63) and search sets
- OpenStack中的测试分类
- Kibana - installation and configuration of kibana
猜你喜欢

Why can't my MySQL container start

Symlink(): solution to protocol error in PHP artisan storage:link on win10

Shardingsphere sub database and sub table < 3 >

Kibana - installation and configuration of kibana

STL tutorial 10 container commonalities and usage scenarios

Is BigDecimal safe to calculate the amount? Look at these five pits~~

Raven2 of vulnhub

Php Export word method (One MHT)

2022年湖南工学院ACM集训第二次周测题解

PHP export word method (one MHT)
随机推荐
简单工厂和工厂方法模式
Go语言实现静态服务器
previous permutation lintcode51
Nestjs configuration service, configuring cookies and sessions
STL tutorial 10 container commonalities and usage scenarios
[learning notes] DP status and transfer
Ripper of vulnhub
Interview experience in summer camp of Central South University in 2022
Capturing and sorting out external Fiddler -- Conversation bar and filter [2]
Hongmeng third training (project training)
牛牛的组队竞赛
Colleagues wrote a responsibility chain model, with countless bugs
vulnhub之narak
抓包整理外篇fiddler———— 会话栏与过滤器[二]
OpenGL 绘制彩色的三角形
How to convert a numeric string to an integer
XML (DTD, XML parsing, XML modeling)
vulnhub之cereal
Vulnhub's presidential
AOSP ~ NTP (Network Time Protocol)