我收到以下编译时警告:
warning C4838: conversion from 'int' to 'TCHAR' requires a narrowing conversion
警告基于以下代码:
TCHAR driveName[] = { TEXT('A') + i, TEXT(':'), TEXT('\\'), TEXT('\0') };
答案 0 :(得分:2)
加法mgr, _ := manager.New(cfg, manager.Options{})
cl := mgr.GetClient()
rq := &corev1.ResourceQuota{}
err = cl.Get(ctx, types.NamespacedName{Name: "my-quota", Namespace:
"my-namespace"}, rq)
将执行通常的整数提升,将两个操作数都转换为整数并产生整数结果。您必须将结果明确地返回给TEXT('A') + i
,以告知编译器您的意图并消除警告。
TCHAR
答案 1 :(得分:1)
TEXT('A') + i
涉及整数提升,因此警告。要使警告静音,您可以将结果强制转换为TCHAR
。
顺便说一句,在C ++中,无法保证字母'A'
-'Z'
是连续的(有关示例,请参见EBCDIC)。
TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZ")[i]
上的内容应该可以解决警告,并且便于携带。