Делая разные основы в C, я обнаружил ошибку, для которой до сих пор не было найдено ответа в Интернете.
Использование TCC в Windows 10 в командной строке:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main(int argc, char **argv) {
abort(); //or assert()
return 0;
}
Сначала проблема возникла с некоторым фиктивным выражением в assert()
(например, assert(1==0);
), которое вызывает abort()
. Остальной код, до abort()
, представляет собой только список printfs
с несколькими sizeof
, и ничего не пошло не так, пока я не добавил assert
/abort
. Программа завершается там, где должна. Затем я не могу написать (перекомпилировать) или удалить .exe. Глядя в список задач, программа указана столько раз, сколько она была запущена. Кажется, застрял «где-то». %ERRORLEVEL%
дает 3. Я должен убить их с правами администратора.
(Я попробовал код на Ubuntu с помощью gcc, и все прошло хорошо.)
abort()
в Windows вызывает всплывающее окно сообщения. Интересно, ждет ли программа завершения до тех пор, пока окно не будет закрыто, и, возможно, вы не видите окно (например, оно находится на другом дисплее или скрыто другими окнами). - person Nate Eldredge   schedule 04.10.2020