Вопросы с тегом «strlen»

8
Почему strlen glibc должен быть настолько сложным, чтобы быстро бегать?
Я просматривал strlenкод здесь и мне было интересно, действительно ли нужны оптимизации, используемые в коде? Например, почему что-то вроде следующего не работает одинаково хорошо или лучше? unsigned long strlen(char s[]) { unsigned long i; for (i = 0; s[i] != '\0'; i++) continue; return i; } Разве не проще и …

18
Будет ли strlen вычисляться несколько раз при использовании в условии цикла?
Я не уверен, может ли следующий код вызывать избыточные вычисления или это зависит от компилятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Будет strlen()ли рассчитываться каждый раз при iувеличении?
109 c++  c  gcc  optimization  strlen 

2
Неожиданная оптимизация strlen при совмещении 2-го массива
Вот мой код: #include <string.h> #include <stdio.h> typedef char BUF[8]; typedef struct { BUF b[23]; } S; S s; int main() { int n; memcpy(&s, "1234567812345678", 17); n = strlen((char *)&s.b) / sizeof(BUF); printf("%d\n", n); n = strlen((char *)&s) / sizeof(BUF); printf("%d\n", n); } Использование gcc 8.3.0 или 8.2.1 с …

4
Почему эта функция возвращает правильную длину строки? (Увеличение указателя на символ)
Это функция, которая считает количество символов в строке: int str_len(const char* s) { int i = 0; while(*(s++)) { i++; } return i; } Почему это возвращает правильную длину? Допустим, я вызываю эту функцию с простой строкой "a". Затем sувеличивается в цикле while, поэтому значения sи iравны 0.
12 c  while-loop  strlen  c89 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.