仓颉 Hello:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
第1行: 第1行:
=== Hello ===
  // Hello, World!
  // Hello, World!
  func fun1(str1:String) {
  func fun1(str1:String) {
第17行: 第18行:
  Hello, World!
  Hello, World!
  Output test from fun1.
  Output test from fun1.
=== C function ===
* 将调用的函数在 foreign 中定义,基本变量类型改为仓颉类型,变长用 ... 表达
* 结构体定义 @C
* 使用时,用 unsafe{}
编译时,会使用 C 库,如:gcc lib path: /lib/gcc/x86_64-linux-gnu/9。用 cjc ... -V 查看。
foreign {
    func srand(n: Int32): Unit
    func time(): Int32
    func rand(): Int32
}
main() {
    unsafe {
      var n1:Int32 = time()
      srand(n1)
    }
    let r1 = unsafe {
      rand()
    }
    println(r1)
}


[[分类:Develop]]
[[分类:Develop]]
[[分类:国产开发语言]]
[[分类:国产开发语言]]

2024年3月18日 (一) 11:38的版本

Hello

// Hello, World!
func fun1(str1:String) {
   println("Output " + str1 + " from fun1.\n")
}

main() {
   var s1 = "Hello, World!"
   println(s1)
   fun1("test")
}
# compile
cjc hello.cj -o hello
# hello 793664(VSCode: 795384)
# result
Hello, World!
Output test from fun1.

C function

  • 将调用的函数在 foreign 中定义,基本变量类型改为仓颉类型,变长用 ... 表达
  • 结构体定义 @C
  • 使用时,用 unsafe{}

编译时,会使用 C 库,如:gcc lib path: /lib/gcc/x86_64-linux-gnu/9。用 cjc ... -V 查看。

foreign {
    func srand(n: Int32): Unit
    func time(): Int32
    func rand(): Int32
}

main() {
   unsafe {
      var n1:Int32 = time()
      srand(n1)
   }

   let r1 = unsafe {
      rand()
   }
   println(r1)
}