当前位置:网站首页>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

边栏推荐
- vulnhub之pyexp
- 【mysql官方文档】死锁
- typeScript
- R language uses data The table package performs data aggregation statistics, calculates window statistics, calculates the median of sliding groups, and merges the generated statistical data into the o
- How to convert a numeric string to an integer
- Duplicate numbers in the array of sword finger offer 03
- Uniapp implementation Click to load more
- (数据库提权——Redis)Redis未授权访问漏洞总结
- Slam mapping and autonomous navigation simulation based on turnlebot3
- 《剑指offer 03》数组中重复的数字
猜你喜欢

外插散点数据

During FTP login, the error "530 login incorrect.login failed" is reported

Groovy测试类 和 Junit测试
![[official MySQL document] deadlock](/img/2d/04e97d696f20c2524701888ea9cd10.png)
[official MySQL document] deadlock

Qt+vtk+occt reading iges/step model

PHP导出word方法(一mht)

(database authorization - redis) summary of unauthorized access vulnerabilities in redis

XML (DTD, XML parsing, XML modeling)

vulnhub之presidential

Ripper of vulnhub
随机推荐
Wrong arrangement (lottery, email)
网络通讯之Socket-Tcp(一)
cgroup简介
CGroup introduction
Introduction to the implementation principle of rxjs observable filter operator
MySQL uses the method of updating linked tables with update
DNS multi-point deployment IP anycast+bgp actual combat analysis
R language uses grid of gridextra package The array function combines multiple visual images of the ggplot2 package horizontally, and the ncol parameter defines the number of columns of the combined g
PHP get the file list and folder list under the folder
AOSP ~ NTP (Network Time Protocol)
Is BigDecimal safe to calculate the amount? Look at these five pits~~
vulnhub之momentum
php 获取文件夹下面的文件列表和文件夹列表
牛牛的组队竞赛
Hongmeng fourth training
OpenStack中的测试分类
Vulnhub geminiinc V2
Unity3D学习笔记5——创建子Mesh
shardingSphere分库分表<3>
ftp登录时,报错“530 Login incorrect.Login failed”