Два оператора переключателя < /p>
switch (value) {
case 0:
return 0;
case 1:
return 0;
case 2:
return 1;
}
< /code>
и < /p>
switch (value) {
case 0:
case 1:
return 0;
case 2:
return 1;
}
< /code>
Скомтилируется в разные сборки в изданиях x86-64 и RISC-V компилятора GNU C. Почему? Есть ли способ это подорвать? Я использую постоянные лямбдасы в шаблонах функций для программного генерации возвращаемых значений функций, подобных выводу, и они имеют гораздо больше инструкций по сборке, чем если бы я вошел, и вручную написал всю обработку вывода и внесла все идентичные выходные передачи в одну цепь часа.>
Два оператора переключателя < /p> switch (value) { case 0: return 0; case 1: return 0; case 2: return 1; } < /code> и < /p> switch (value) { case 0: case 1: return 0; case 2: return 1; } < /code> Скомтилируется в разные сборки в изданиях x86-64 и RISC-V компилятора GNU C. Почему? Есть ли способ это подорвать? Я использую постоянные лямбдасы в шаблонах функций для программного генерации возвращаемых значений функций, подобных выводу, и они имеют гораздо больше инструкций по сборке, чем если бы я вошел, и вручную написал всю обработку вывода и внесла все идентичные выходные передачи в одну цепь часа.>
У меня есть два метода в C#, которые используют выражения переключателя: один работает с целыми числами, а другой — со строками:
public int Int(int value)
{
int sum = value switch
{
0 => 0,
1 => 1,
2 => 2,
_ => throw new System.Exception()
};...
У меня есть два метода в C#, которые используют выражения переключателя: один работает с целыми числами, а другой — со строками:
public int Int(int value)
{
int sum = value switch
{
0 => 0,
1 => 1,
2 => 2,
_ => throw new System.Exception()
};...
У меня есть два метода в C#, которые используют выражения переключателя: один работает с целыми числами, а другой — со строками:
public int Int(int value)
{
int sum = value switch
{
0 => 0,
1 => 1,
2 => 2,
_ => throw new System.Exception()
};...