github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/code_quality/comments.go.expected (about)

     1  //
     2  //	Package - transpiled by c4go
     3  //
     4  //	If you have found any issues, please raise an issue at:
     5  //	https://github.com/Konstantin8105/c4go/
     6  //
     7  
     8  package code_quality
     9  
    10  import "unsafe"
    11  import "github.com/Konstantin8105/c4go/noarch"
    12  import "fmt"
    13  
    14  // fibs - transpiled function from  C4GO/tests/code_quality/comments.c:12
    15  func fibs(n int32) []int32 {
    16  	if n <= 0 {
    17  		// Taked from TestBookSources/testdata/git-source/VasielBook/Глава_4/4.11/main.c
    18  		// Динамический массив как результат функции
    19  		//
    20  		// * Функция результатом возвращает динамический массив,
    21  		// * заполненный числами Фибоначчи
    22  		//
    23  		// Если указан некоректный раззмер массива
    24  		return nil
    25  	}
    26  	// Создание динамического массива
    27  	var p []int32 = make([]int32, uint32(n)*uint32(1))
    28  	// Первый элемент массива
    29  	p[0] = 1
    30  	if n > 1 {
    31  		// Если в массиве есть второй элемент
    32  		p[1] = 1
    33  	}
    34  	// Индексная переменная
    35  	var k int32
    36  	{
    37  		// Заполнение прочих элементов массива
    38  		for k = 2; k < n; k++ {
    39  			p[k] = p[k-1] + p[k-2]
    40  		}
    41  	}
    42  	return p
    43  }
    44  
    45  // main - transpiled function from  C4GO/tests/code_quality/comments.c:42
    46  func main() {
    47  	defer noarch.AtexitRun()
    48  	// main function
    49  	//
    50  	// begin of program
    51  	// Указатель для записи результатов вызова
    52  	var nums []int32
    53  	// Переменная для записи размера массива
    54  	var size int32
    55  	// Считывание размера массива
    56  	fmt.Printf("Укажите размер массива: ")
    57  	noarch.Scanf([]byte("%d\x00"), c4goUnsafeConvert_int32(&size))
    58  	// Индексная переменная
    59  	var k int32
    60  	{
    61  		// Отображение элементов массива
    62  		for k = 0; k < size; k++ {
    63  			noarch.Printf([]byte("| %d \x00"), nums[k])
    64  		}
    65  	}
    66  	if size >= 1 {
    67  		fmt.Printf("|\n")
    68  	}
    69  	if nums != nil {
    70  		_ = nums
    71  		// Удаление массива из памяти
    72  		fmt.Printf("Динамический массив удалён\n")
    73  	} else {
    74  		fmt.Printf("Массив не был создан\n")
    75  	}
    76  	return
    77  }
    78  
    79  // c4goUnsafeConvert_int32 : created by c4go
    80  func c4goUnsafeConvert_int32(c4go_name *int32) []int32 {
    81  	return (*[1000000]int32)(unsafe.Pointer(c4go_name))[:]
    82  }