Это код для микроконтроллера PIC18 на языке C:
void main() {
int s1='0';
int d0;
int d1;
//if (s1 == '0') {d1 = '0'; d0 = '0';}
//else if (s1 == '1') {d1 = '0';d0 = '1';}
//else if (s1 == '2') {d1 = '1';d0 = '0';}
//else if (s1 == '3') {d1 = '1';d0 = '1';}
switch (s1) {
case '0': {d1 = '0';d0 = '0';} break;
case '1': {d1 = '0';d0 = '1';} break;
case '2': {d1 = '1';d0 = '0';} break;
case '3': {d1 = '1';d0 = '1';} break;
}
}
С ifs
s1='0' - 14 cycles
s1='1' - 21 cycles
s1='2' - 28 cycles
s1='3' - 33 cycles
s1='4' - 34 cycles
С помощью случаев
s1='0' - 17 cycles
s2='1' - 23 cycles
s3='2' - 29 cycles
s4='3' - 35 cycles
s5='4' - 32 cycles
So i может предположить, что на очень низком уровне ifs быстрее. Код в ПЗУ также короче.
+
означает пробел только в содержании application / x-www-form-urlencoded
, например, в части запроса URL:
http://www.example.com/path/foo+bar/path?query+name=query+value
В этом URL , имя параметра - имя запроса
с пробелом, а значение - значение запроса
с пробелом, но имя папки в пути буквально foo + bar
, не foo bar
.
% 20
- допустимый способ кодирования пробела в любом из этих контекстов. Поэтому, если вам нужно URL-кодировать строку для включения в часть URL-адреса, всегда безопасно заменить пробелы на % 20
, а плюсы на % 2B
. Это то, что напр. encodeURIComponent ()
выполняет в JavaScript. К сожалению, это не то, что urlencode делает в PHP ( rawurlencode безопаснее).
См. Также HTML 4.01 Specification application / x-www-form-urlencoded