Форум программистов, компьютерный форум CyberForum.ru

Почему выскакивает Warning "signed/unsigned mismatch"? - C++

Восстановить пароль Регистрация
 
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
29.12.2008, 15:49     Почему выскакивает Warning "signed/unsigned mismatch"? #1
Написал такую программу, в которой перегружена функция rev_str(). Впринципе программа компилируется и работает нормально. Но волнует то, что выскакивает
Код
warning C4018: '>=' : signed/unsigned mismatch
А вот сама программа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;
 
void rev_str(char *a)
{
    int i,j=0;
    char c;
    for (i=strlen(a)-1; i>= strlen(a)/2 ; i--)
    {
        c=*(a+j);
        *(a+j)=*(a+i);
        *(a+i)=c;
        j++;
    }
}
 
void rev_str(char *a, char *b)
{
    int i,j=0;
    memset(b,'\0',80);
    for (i=strlen(a)-1; i>=0; i--)
    {
        *(b+j)=*(a+i);
        j++;
    }
}
void main()
{
    char s1[80], s2[80];
    gets_s(s1);
    gets_s(s2);
    rev_str(s1,s2);
    cout << s2;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2008, 15:49     Почему выскакивает Warning "signed/unsigned mismatch"?
Посмотрите здесь:

C++ Signed/Unsigned
C++ Значения типов данных (signed, unsigned, char)
C++ [C++ Warning] Unit1.cpp(24): W8012 Comparing signed and unsigned values
Почему в выводе выдаются предупреждения "warning C4101: sm: неиспользованная локальная переменная" C++
warning C4244: =: преобразование "double" в "float", возможна потеря данных C++
C++ warning C4244: =: преобразование "double" в "float
Warning C4244: =: преобразование "double" в "float", возможна потеря данных C++
Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных C++
C++ Comparison between signed and unsigned integer expressions
C++ Невозможно преобразовать "unsigned int" в "output::book_origin"
Сравнение чисел unsigned и signed C++
Ошибка преобразование "time_t" в "unsigned int", возможна потеря данных C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
29.12.2008, 16:04     Почему выскакивает Warning "signed/unsigned mismatch"? #2
strlen возращает unsigned int, а вы его сравниваете с int, который есть знаковым типлм данных, вот компилятор и переживает
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
29.12.2008, 16:27  [ТС]     Почему выскакивает Warning "signed/unsigned mismatch"? #3
WooDooMan, Спасибо.
Yandex
Объявления
29.12.2008, 16:27     Почему выскакивает Warning "signed/unsigned mismatch"?
Ответ Создать тему
Опции темы

Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru