04-10-2025, 07:33 AM
Is possible update to the last version. How?
Tcc Compiler Update
|
04-10-2025, 07:33 AM
Is possible update to the last version. How?
04-10-2025, 10:12 AM
Is there an important reason to update?
04-10-2025, 10:29 AM
The main changes between the C89 (also known as ANSI C or C90) and C99 standards of the C programming language are significant and aim to improve functionality, flexibility, and compatibility with other languages. Here is a list of the most important changes:
1. New Data Types:
Five new keywords were added to the language:
The C++ style of single-line comments using was adopted. 4. Flexible Variable Declarations: In C89, variable declarations had to appear at the beginning of a block (before any statement). C99 allows declaring variables anywhere within a block, just before they are used for the first time. 5. Variable Length Arrays (VLAs): C99 allows the declaration of arrays whose size is not a constant at compile time. The size can be determined at runtime. These arrays can be automatic (on the stack) or can be a function parameter. 6. Loops with Declaration in Initialization: C99 allows declaring the control variable directly in the initialization of the loop, for example: . The scope of this variable is limited to the loop. 7. New Library Functions and Headers: Several new functions were added to the standard library, along with new headers:
C99 allows initializing specific members of structures and unions by their name, instead of relying on the order of the members. For example: . Designated initialization is also allowed for arrays. 11. Compound Literals: C99 introduces the possibility of creating values of type struct, union, or array "on the fly" without needing to declare a named variable. For example: . 12. Defined Behavior for Division and Modulo with Negative Operands: In C89, the result of division and modulo with negative operands depended on the implementation. C99 specifies that the result of the division is always truncated towards zero, and the sign of the result of the modulo operator is the same as the sign of the first operand. 13. Extended Identifiers: C99 relaxes the restrictions on the length of identifiers. C89 required compilers to remember the first 31 characters for internal identifiers and only the first 6 characters (case-insensitive) for names with external linkage. C99 increases these limits to 63 characters for internal identifiers and 31 characters (case-sensitive) for names with external linkage. In summary, C99 introduced many features that made the C language more powerful, flexible, and suitable for a wider range of applications, bringing it closer in some aspects to languages like C++. Although C99 was a significant advancement, other standards such as C11 and C17/C18 were subsequently published, which introduced even more improvements.
04-10-2025, 12:28 PM
The QM TCC version (0.9.25) supports many of C99 features. Maybe the last version supports more, I don't know.
The QM tcc.dll was compiled from TCC source files, with many my modifications (extensions, bug fixes). Too much work to update. The new TCC version has tcclib.dll, but without these modifications it can't be used with the __Tcc class.
04-10-2025, 12:43 PM
Can you modify theĀ __Tcc class to use it?
04-10-2025, 12:53 PM
Too much work too. Studying everything forgotten, testing, debugging, finding workarounds for TCC limitations and bugs...
04-10-2025, 05:18 PM
Ok. I thought it would be simpler.
|
« Next Oldest | Next Newest »
|