Comments (3)
This particular example can be fixed with
return @[(struct T){.a = 1}@]; // C99 compound literal
which works with CWEB 3.6 (May 2005) and up.
from cweb.
Here's a larger example with a few more tweaks:
@* C/99 Compound Literals.
@c
@<\#|include|s@>@;
@<Structure@>@;
@<Declaration@>@;
@<Definition@>@;
@<Output@>@;
@<Main@>@;
@ @<\#|inc...@>=
#include <stdio.h> /* |printf| */
#include <string.h> /* |memcpy| */
@ @<Struct...@>=
struct T
{
int a;
char* b;
} t2;
@ @<Decl...@>=
void g(const struct T* t);
@ @d bufsiz 10
@<Def...@>=
void f(void)
{
@t\2\2@>
int *x = @[(int [bufsiz])@t @>{42}@];
t2 = @[(struct T) {43, "world"}@];
g( @[&(struct T)@t @>{@, .b="hello", .a=47 @,}@] );
g( @[&(struct T) {43, "bye"}@] );
@t\2\2@>
memcpy(x, @[(int[])@t @>{1, 2, 3}@], 3*sizeof(int));
for (int i=0; i<bufsiz; ++i)
printf("x[%d]==%d\n", i, x[i]);
}
@ @<Out...@>=
void g(const struct T* t)
{
printf("struct T { a=%d, b=%s }\n", t->a, t->b);
}
@ @<Main@>=
int main(void)
{
f();
}
from cweb.
Thank you for the detailed example, especially about the indentation tweak!
from cweb.
Related Issues (20)
- cwebmac.tex line 448 bombs prod.w HOT 1
- license for the project HOT 2
- Issue #line directives after each #endif HOT 5
- Malformed preprocessor macro HOT 2
- Incorrect type definition HOT 2
- Historic bug: Double space in do {...} while (...); loop HOT 3
- Formatting glitches in primitive C code HOT 10
- Improve spacing in comma-separated lists.
- CWEB 4.8 breaks MMIX. HOT 6
- Validation of PDF output fails HOT 6
- Possible bug in CWEB HOT 1
- CWEB breaks reflect.w HOT 2
- `cwebmac` missing with `texlive` ubuntu package despite finding `cweave` HOT 2
- Buffer overflow. HOT 4
- Bugs in CWEB 4.10
- Fix line breaks in case of errors. HOT 2
- undefined control sequence HOT 2
- Slight format improvement: kern2.4em in \5.
- Regression from CWEB 3.64c: do whatever; @+ while (...); adds second \5. HOT 1
- Add option for alternative layout. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cweb.