Запитання з тегом «strlen»

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

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

2
Несподівана оптимізація strlen при зведенні 2-d масиву
Ось мій код: #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.