ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Исправление warnings. Нужна помощь
@ 2005-12-08 10:49 php-coder
  2005-12-08 17:24 ` Andrey Rahmatullin
  0 siblings, 1 reply; 2+ messages in thread
From: php-coder @ 2005-12-08 10:49 UTC (permalink / raw)
  To: devel


    Здравствуйте!

    Пытаюсь сделать, чтобы программа на С при компиляции с флагом -Wall не
    выдавала никаких warning'ов. Но сам немножко испугался кода и решил
    попросить помощи у вас.

    1)

    cpu_linux.c: In function `cpu_init':
    cpu_linux.c:63: warning: use of assignment suppression and length
    modifier together in scanf format
    [ и так ещё 5 раз в этой строчке ]

    вот кусок кода:

    static int is_linux26;
    ...
    unsigned long long softirq;
    ...
    is_linux26 = fscanf(fp, "%*s  %*llu %*llu %*llu %*llu %*llu %*llu
    %llu", &softirq);

    Читают файл /proc/stat. Что здесь не правильно? (полагаю, что
    количество %X не совпадает с количеством переменных в fscanf ?)

    2)

    cpu_linux.c: In function `cpu_get_usage':
    cpu_linux.c:93: warning: unsigned int format, different type arg (arg 3)
    cpu_linux.c:93: warning: unsigned int format, different type arg (arg 4)
    cpu_linux.c:93: warning: unsigned int format, different type arg (arg 5)
    cpu_linux.c:93: warning: long unsigned int format, different type arg
    (arg 6)

    Кусок кода:

    unsigned long long user, nice, system, idle, iowait, irq, softirq;
    ...
    if (opts->cpu_number == -1) {
        if (is_linux26)
            fscanf(fp, "%*s  %llu %llu %llu %llu %llu %llu %llu",
                   &user, &nice, &system, &idle, &iowait, &irq, &softirq);
        else
            fscanf(fp, "%*s  %u %u %u %lu", &user, &nice, &system, &idle);
    ...

    Думаю, что надо привести во втором fscanf'e всё как в первом, т.е.
    %llu вместо %u. Ничего страшного при этом не произойдет?

    3)

    main.c: In function `redraw':
    main.c:223: warning: 'backdrop' might be used uninitialized in this
    function

    Вот код:

    Pixmap backdrop;

    switch (backlight) {
    case LIGHTON:
        backdrop = backdrop_on;
        x = 2;
        break;
    case LIGHTOFF:
        backdrop = backdrop_off;
        x = 0;
        break;
    }

    Хочу добавить сюда defaults, только вот что туда написать? Точнее,
    не знаю каким значением инициализировать переменную backdrop ?


    Буду благодарен за вашу помощь! Мммм... может быть не надо было это
    всё сюда писать? Здесь вообще можно такие вопросы задавать или мне
    лучше в ru_programming такое постить?

    Спасибо за внимание!

-- 
+ php-coder
+ php-coder[at]altlinux[dot]ru

>"Будущее проекта рабочей среды GNOME выглядит довольно светло"
А с настоящим-то как? Судя по прочитанному, настоящее выглядит
довольно темно :-))
		-- Ron (linux.org.ru)





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [devel] Исправление warnings. Нужна помощь
  2005-12-08 10:49 [devel] Исправление warnings. Нужна помощь php-coder
@ 2005-12-08 17:24 ` Andrey Rahmatullin
  0 siblings, 0 replies; 2+ messages in thread
From: Andrey Rahmatullin @ 2005-12-08 17:24 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1739 bytes --]

On Thu, Dec 08, 2005 at 04:49:19PM +0600, php-coder wrote:
>     cpu_linux.c:63: warning: use of assignment suppression and length
>     modifier together in scanf format
>     is_linux26 = fscanf(fp, "%*s  %*llu %*llu %*llu %*llu %*llu %*llu
>     %llu", &softirq);
> 
>     Читают файл /proc/stat. Что здесь не правильно? (полагаю, что
>     количество %X не совпадает с количеством переменных в fscanf ?)
Не, насколько я понял из printf(3), аргументы с * читаются, но не
присваиваются никуда (не знал о такой фишке). Почему его нельзя
использовать вместе с ll - не знаю.
>             fscanf(fp, "%*s  %llu %llu %llu %llu %llu %llu %llu",
>                    &user, &nice, &system, &idle, &iowait, &irq, &softirq);
>         else
>             fscanf(fp, "%*s  %u %u %u %lu", &user, &nice, &system, &idle);
>     ...
> 
>     Думаю, что надо привести во втором fscanf'e всё как в первом, т.е.
>     %llu вместо %u.
Ну, видимо да.

> Ничего страшного при этом не произойдет?
Неа.

>     Pixmap backdrop;
> 
>     switch (backlight) {
>     case LIGHTON:
>         backdrop = backdrop_on;
>         x = 2;
>         break;
>     case LIGHTOFF:
>         backdrop = backdrop_off;
>         x = 0;
>         break;
>     }
Хмм, я на такое обычно забиваю и в своем коде тоже...

>     Хочу добавить сюда defaults, только вот что туда написать? Точнее,
>     не знаю каким значением инициализировать переменную backdrop ?
нуллом его, нуллом...
(привычка C# ;))
Не знаю.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(8):

Я опять переделал rpm-build-perl.  Согласно проведённому мной
исследованию, новая версия rpm-build-perl на 42% лучше предыдущей. :)
		-- at in devel@

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-12-08 17:24 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-12-08 10:49 [devel] Исправление warnings. Нужна помощь php-coder
2005-12-08 17:24 ` Andrey Rahmatullin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git