- 1
// Чому можливо писати "2[i]" а можливо i "i[2]"?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
// Чому можливо писати "2[i]" а можливо i "i[2]"?
а?
+1
#define paehal int i = 0; char arr[30000]; memset(arr, 0, sizeof(arr));
#define go i++;
#define nozad i--;
#define plusegg arr[i]++;
#define minusegg arr[i]--;
#define vivodeg putchar(arr[i]);
#define tipavhile while(arr[i]){
#define nevhile }
int main() {
setlocale(0, "");
paehal
plusegg plusegg plusegg plusegg plusegg tipavhile plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg go nozad minusegg nevhile go vivodeg go plusegg plusegg plusegg tipavhile go plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg plusegg go minusegg nevhile go vivodeg
return 0;
}
брайнфак на минималках
выводит a!
0
(cell)data += sizeof(cell) - 1;
(cell)data &= ~(sizeof(cell) - 1);
Блядь, ёбаный tcc! Другие конпилеры отказываются такое конпилить. Теперь дохуя переписывать.
−1
//"вирус" в стиле кулхацкеров
#include <stdlib.h>
int main() {
int i = 1;
while( i == 1) {
system("start calc");
}
return 0;
}
0
void converting(char *in, char *out, node *PTR, char (checking_stack)(node), void (push)(node *topPTR, char value), int (pop)(node *fix), int (isOper)(char c), int (precedence_intro)(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)), int(intro_precedence_power)(int res_1, int res_2)) {
int k = 0, j = 0, d = 0;
push(PTR, '(');
for (k = 0; checking_stack((node)PTR) != 0; k++) {
if (isdigit(in[k])) {
out[j++] = in[k];
}
if (in[k] == '(') {
push(PTR, in[k]);
}
if (isOper(in[k]) == 1) {
while (precedence_intro((*PTR)->alpha, in[k], intro_precedence_power) != -1) {
out[j++] = pop(PTR);
}
push(PTR, in[k]);
}
if (in[k] == ')') {
d = pop(PTR);
for (; d != '('; d = pop(PTR)) {
out[j++] = d;
}
}
}
}
int precedence(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)) {
char collection[] = "+1-1*2/2^3";
char buf_1 = (char)strcspn( collection , &data_1) + 1;
char buf_2 = (char)strcspn(collection, &data_2) + 1;
return intro_precedence_power(atoi(&collection[buf_1]), atoi(&collection[buf_2]));
}
int precedence_power(int res_1, int res_2) {
if (res_1 < res_2) {
return -1;
}
else if (res_1 == res_2) {
return 0;
}
else if (res_1 > res_2) {
return 1;
}
return 0;
}
Якобы вычисляет обратною польскою нотацию номер два
0
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define MAX 300
struct stack {
char alpha;
struct stack *nxtPTR;
};
typedef struct stack Stack;
typedef Stack *node;
void message(void);
char out_print(char word[]);
int precedence_power(int res_1, int res_2);
int pop(node *topPtr);
void push_stack(node *topPTR, char value);
int pop(node *topPTR);
char check_stack(node data);
int isOperator(char c);
int precedence(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2));
void converting(char *in, char *out, node *PTR, char (checking_stack)(node), void (push)(node *topPTR, char value), int (pop)(node *fix), int (isOper)(char c), int (precedence_intro)(char data_1, char data_2, int(intro_precedence_power)(int res_1, int res_2)), int(intro_precedence_power)(int res_1, int res_2));
void please_enter(void );
int main(void) {
char infix[MAX];
char postfix[MAX];
node topPTR = NULL;
fgets(infix, sizeof(infix), stdin);
int m = strlen(infix);
infix[m] = ')';
memset(postfix, 0, MAX);
converting( infix, postfix, &topPTR, check_stack, push_stack, pop, isOperator, precedence, precedence_power);
out_print(postfix);
puts(" ");
return 0;
}
char out_print(char word[]) {
if( word[0] != '\0' ){
printf( "%c " , word[0] ) ;
return out_print(word + 1 ) ;
}
}
void push_stack(node *topPTR, char value) {
node newPTR = malloc(sizeof(Stack));
if (newPTR != NULL) {
newPTR->alpha = value;
newPTR->nxtPTR = *topPTR;
*topPTR = newPTR;
}
else {
puts("error");
}
}
int pop(node *fix) {
int value = (*fix)->alpha;
node temp = *fix;
*fix = (*fix)->nxtPTR;
free(temp);
return value;
}
char check_stack(node data) {
return data->alpha;
}
int isOperator(char c) {
return c == '/' || c == '*' || c == '-' || c == '+' || c == '^' ;
}
вычисляет обратною польскою нотацию номер раз
+1
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(void)
{
uint32_t a = 24804541;
for(size_t i = 0; i < 5; i++)
{
for(size_t j = 0; j < 5; j++)
{
putchar( "01"[(a >> (i*5 + j)) & 1]);
}
putchar('\n');
}
return EXIT_SUCCESS;
}
https://ru.wikipedia.org/wiki/Параграф_86а_Уголовного_кодекса_Германии
> В 1998 году суд Франкфурта-на-Майне своим решением запретил распространение компьютерных игр, в которых содержится какая-либо нацистская символика — прецедентом стала игра Wolfenstein 3D. Немецкие локализаторы вынуждены были заменять в играх нацистскую символику на другие символы, не попадающие под нарушение параграфа 86а Уголовного кодекса Германии.
Предлагаю запретить число 24804541.
+1
#include <stdio.h>
#include <stdlib.h>
void myfree(void *ptr)
{
printf("%p\n", *(void **)ptr);
free(*(void **)ptr);
printf("freed!\n");
}
int main(void) {
char *x __attribute__ (( cleanup (myfree) )) = malloc(1);
printf("%p\n", x);
return 0;
}
https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html
cleanup (cleanup_function)
The cleanup attribute runs a function when the variable goes out of scope. This attribute can only be applied to auto function scope variables; it may not be applied to parameters or variables with static storage duration. The function must take one parameter, a pointer to a type compatible with the variable. The return value of the function (if any) is ignored.
If -fexceptions is enabled, then cleanup_function is run during the stack unwinding that happens during the processing of the exception. Note that the cleanup attribute does not allow the exception to be caught, only to perform an action. It is undefined what happens if cleanup_function does not return normally.
0
enum {
#include "opcodes"
};
Хотел юзать один файл с перечислением и в "Си" и в "fasm", но только потом понял, что в "fasm" так не получится :(
+2
#include <stdio.h>
#include <math.h>
#define SET(var, ...) typeof(__VA_ARGS__) var = __VA_ARGS__
SET(p, &puts);
struct point_t { double x, y; };
SET(point, (struct point_t){0.0, 1.0});
SET(anonymous, (struct{char *s;}){"hui"});
int main(void)
{
static SET(msg, "Halo!");
p(msg);
SET(sqrt_of_2, sqrt(2));
printf("√2 = %f\n", sqrt_of_2);
return 0;
}
Автовывод типов в "C".