среда, 25 декабря 2013 г.

Начнем, пожалуй

1. Запускаем редактор vim для создания и редактирования файла hello.c
$ vim hello.c
2. Нажатием клавиши <i> переходим в режим --INSERT-- и набираем текст программы:

#include <stdio.h>

main()
{
        printf("hello, world\n");
}

Сохранение изменений и выход из редактора vim: клавиша <Esc> и ввод :wq

3. Компилируем файл командой:
$ cc -g -O0 -Wall -o a.out hello.c
-Wall - включение предупреждений компилятора;
-g - включение отладочной информации в исполняемый файл;
-O0 - отключение оптимизации;
-o - имя исполняемого файла после компиляции.

$ cc -g -O0 -Wall -o a.out hello.c
hello.c:3:1: warning: return type defaults to 'int'
hello.c: In function 'main':
hello.c:6:1: warning: control reaches end of non-void function
4. Запускаем файл на выполнение
 $ ./a.out
в итоге получаем hello, world

Выводы:

  1. Предупреждения при компиляции не мешают созданию исполняемого файла;
  2. Если не указан тип, возвращаемого функцией результата, то он автоматически становится 'int';
  3. Компилятор выдает предупреждение, когда функция должна вернуть значение, но не возвращает.
Чтобы программа компилировалась без предупреждений, изменим ее:

#include <stdio.h>

int main()
{
        printf("hello, world\n");

        return 0;
}

Символ новой строки никогда не вставляется автоматически, так что одну строку можно напечатать по шагам с помощью нескольких обращений к printf. Нашу первую программу можно написать и так:

#include <stdio.h>
int main(void)
{
        printf("hello, ");
        printf("world");
        printf("\n");

        return 0;

}

$ cc -g -O0 -Wall -o a.out hello.c
$ ./a.out
hello, world


Комментариев нет:

Отправить комментарий